コード例 #1
0
        public VulkanRenderTarget(VulkanPlatformInterface vulkanPlatformInterface, IVulkanPlatformSurface vulkanPlatformSurface)
        {
            _surface = vulkanPlatformInterface.CreateRenderTarget(vulkanPlatformSurface);
            _vulkanPlatformInterface = vulkanPlatformInterface;
            _vulkanPlatformSurface   = vulkanPlatformSurface;

            Initialize();
        }
コード例 #2
0
ファイル: VulkanSurface.cs プロジェクト: Ryujinx/Ryujinx
        internal static VulkanSurface CreateSurface(VulkanInstance instance, IVulkanPlatformSurface vulkanPlatformSurface)
        {
            if (SurfaceExtension == null)
            {
                instance.Api.TryGetInstanceExtension(instance.InternalHandle, out KhrSurface extension);

                SurfaceExtension = extension;
            }

            return(new VulkanSurface(vulkanPlatformSurface, instance));
        }
コード例 #3
0
        public VulkanSurfaceRenderTarget CreateRenderTarget(IVulkanPlatformSurface platformSurface)
        {
            var surface = VulkanSurface.CreateSurface(Instance, platformSurface);

            if (PhysicalDevice == null)
            {
                PhysicalDevice = VulkanPhysicalDevice.FindSuitablePhysicalDevice(Instance, surface, _options.PreferDiscreteGpu, _options.PreferredDevice);
            }

            var renderTarget = new VulkanSurfaceRenderTarget(this, surface);

            if (MainSurface == null && surface != null)
            {
                MainSurface = renderTarget;
            }

            return(renderTarget);
        }
コード例 #4
0
ファイル: VulkanSurface.cs プロジェクト: Ryujinx/Ryujinx
 private VulkanSurface(IVulkanPlatformSurface vulkanPlatformSurface, VulkanInstance instance)
 {
     _vulkanPlatformSurface = vulkanPlatformSurface;
     _instance = instance;
     ApiHandle = vulkanPlatformSurface.CreateSurface(instance);
 }