public AndroidHardwareBufferFormatPropertiesANDROID ( StructureType sType = StructureType.AndroidHardwareBufferFormatPropertiesAndroid, void *pNext = default, Format format = default, ulong externalFormat = default, FormatFeatureFlags formatFeatures = default, ComponentMapping samplerYcbcrConversionComponents = default, SamplerYcbcrModelConversion suggestedYcbcrModel = default, SamplerYcbcrRange suggestedYcbcrRange = default, ChromaLocation suggestedXChromaOffset = default, ChromaLocation suggestedYChromaOffset = default ) { SType = sType; PNext = pNext; Format = format; ExternalFormat = externalFormat; FormatFeatures = formatFeatures; SamplerYcbcrConversionComponents = samplerYcbcrConversionComponents; SuggestedYcbcrModel = suggestedYcbcrModel; SuggestedYcbcrRange = suggestedYcbcrRange; SuggestedXChromaOffset = suggestedXChromaOffset; SuggestedYChromaOffset = suggestedYChromaOffset; }
public DrmFormatModifierPropertiesEXT ( ulong drmFormatModifier = default, uint drmFormatModifierPlaneCount = default, FormatFeatureFlags drmFormatModifierTilingFeatures = default ) { DrmFormatModifier = drmFormatModifier; DrmFormatModifierPlaneCount = drmFormatModifierPlaneCount; DrmFormatModifierTilingFeatures = drmFormatModifierTilingFeatures; }
public FormatProperties ( FormatFeatureFlags linearTilingFeatures = default, FormatFeatureFlags optimalTilingFeatures = default, FormatFeatureFlags bufferFeatures = default ) { LinearTilingFeatures = linearTilingFeatures; OptimalTilingFeatures = optimalTilingFeatures; BufferFeatures = bufferFeatures; }
public bool OptimalFormatsSupport(FormatFeatureFlags flags, params GAL.Format[] formats) { foreach (GAL.Format format in formats) { if (!OptimalFormatSupports(flags, format)) { return(false); } } return(true); }
private Format FindFormat(FormatFeatureFlags features, params Format[] candidates) { foreach (Format format in candidates) { _vk.GetPhysicalDeviceFormatProperties(_physicalDevice, format, out FormatProperties properties); if (properties.OptimalTilingFeatures.HasFlag(features)) { return(format); } } throw new Exception("No suitable format found."); }
public bool FormatSupports(GAL.Format format, FormatFeatureFlags flags) { var formatFeatureFlags = _table[(int)format]; if (formatFeatureFlags == 0) { _api.GetPhysicalDeviceFormatProperties(_physicalDevice, FormatTable.GetFormat(format), out var fp); formatFeatureFlags = fp.OptimalTilingFeatures; _table[(int)format] = formatFeatureFlags; } return((formatFeatureFlags & flags) == flags); }
public bool BufferFormatSupports(FormatFeatureFlags flags, GAL.Format format) { var formatFeatureFlags = _bufferTable[(int)format]; if (formatFeatureFlags == 0) { _api.GetPhysicalDeviceFormatProperties(_physicalDevice, FormatTable.GetFormat(format), out var fp); formatFeatureFlags = fp.BufferFeatures; _bufferTable[(int)format] = formatFeatureFlags; } return((formatFeatureFlags & flags) == flags); }
private Format FindSupportedFormat(IEnumerable <Format> candidates, ImageTiling tiling, FormatFeatureFlags features) { foreach (var format in candidates) { var props = this.physicalDevice.GetFormatProperties(format); if (tiling == ImageTiling.Linear && props.LinearTilingFeatures.HasFlag(features)) { return(format); } else if (tiling == ImageTiling.Optimal && props.OptimalTilingFeatures.HasFlag(features)) { return(format); } } throw new Exception("failed to find supported format!"); }
/// <summary> /// /// </summary> public FormatProperties(FormatFeatureFlags linearTilingFeatures, FormatFeatureFlags optimalTilingFeatures, FormatFeatureFlags bufferFeatures) { this.LinearTilingFeatures = linearTilingFeatures; this.OptimalTilingFeatures = optimalTilingFeatures; this.BufferFeatures = bufferFeatures; }