public VulkanRenderTarget(VulkanPlatformInterface vulkanPlatformInterface, IVulkanPlatformSurface vulkanPlatformSurface) { _surface = vulkanPlatformInterface.CreateRenderTarget(vulkanPlatformSurface); _vulkanPlatformInterface = vulkanPlatformInterface; _vulkanPlatformSurface = vulkanPlatformSurface; Initialize(); }
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)); }
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); }
private VulkanSurface(IVulkanPlatformSurface vulkanPlatformSurface, VulkanInstance instance) { _vulkanPlatformSurface = vulkanPlatformSurface; _instance = instance; ApiHandle = vulkanPlatformSurface.CreateSurface(instance); }