Esempio n. 1
0
        public Result EnumerateInstanceLayerProperties(out MgLayerProperties[] properties)
        {
            UInt32 pPropertyCount = 0;

            var first = Interops.vkEnumerateInstanceLayerProperties(ref pPropertyCount, null);

            if (first != Result.SUCCESS)
            {
                properties = null;
                return(first);
            }

            var layerProperties = new VkLayerProperties[pPropertyCount];
            var last            = Interops.vkEnumerateInstanceLayerProperties(ref pPropertyCount, layerProperties);

            properties = new MgLayerProperties[pPropertyCount];
            for (uint i = 0; i < pPropertyCount; ++i)
            {
                properties[i] = new MgLayerProperties
                {
                    LayerName             = VkInteropsUtility.ByteArrayToTrimmedString(layerProperties[i].layerName),
                    SpecVersion           = layerProperties[i].specVersion,
                    ImplementationVersion = layerProperties[i].implementationVersion,
                    Description           = VkInteropsUtility.ByteArrayToTrimmedString(layerProperties[i].description),
                };
            }
            return(last);
        }
Esempio n. 2
0
        public Result EnumerateInstanceExtensionProperties(string layerName, out MgExtensionProperties[] pProperties)
        {
            var pLayerName = IntPtr.Zero;

            try
            {
                if (!string.IsNullOrWhiteSpace(layerName))
                {
                    pLayerName = VkInteropsUtility.NativeUtf8FromString(layerName);
                }

                UInt32 pPropertyCount = 0;
                var    first          = Interops.vkEnumerateInstanceExtensionProperties(pLayerName, ref pPropertyCount, null);

                if (first != Result.SUCCESS)
                {
                    pProperties = null;
                    return(first);
                }

                var extensionProperties = new VkExtensionProperties[pPropertyCount];
                var last = Interops.vkEnumerateInstanceExtensionProperties(pLayerName, ref pPropertyCount, extensionProperties);

                pProperties = new MgExtensionProperties[pPropertyCount];
                for (uint i = 0; i < pPropertyCount; ++i)
                {
                    pProperties[i] = new MgExtensionProperties
                    {
                        ExtensionName = VkInteropsUtility.ByteArrayToTrimmedString(extensionProperties[i].extensionName),
                        SpecVersion   = extensionProperties[i].specVersion,
                    };
                }
                return(last);
            }
            finally
            {
                if (pLayerName != IntPtr.Zero)
                {
                }
            }
        }