This creates the associated MSAA and depth+stencil texture.
19 if (!context || !swapchain_image || !swap_callback) {
23 std::shared_ptr<Texture> msaa_tex;
25 TextureDescriptor msaa_tex_desc;
29 msaa_tex_desc.format = swapchain_image->GetPixelFormat();
30 msaa_tex_desc.size = swapchain_image->GetSize();
33 if (!swapchain_image->GetMSAATexture()) {
34 msaa_tex = context->GetResourceAllocator()->CreateTexture(msaa_tex_desc);
35 msaa_tex->SetLabel(
"ImpellerOnscreenColorMSAA");
41 msaa_tex = swapchain_image->GetMSAATexture();
45 TextureDescriptor resolve_tex_desc;
47 resolve_tex_desc.format = swapchain_image->GetPixelFormat();
48 resolve_tex_desc.size = swapchain_image->GetSize();
53 std::shared_ptr<Texture> resolve_tex =
54 std::make_shared<TextureVK>(context,
62 resolve_tex->SetLabel(
"ImpellerOnscreenResolve");
64 ColorAttachment color0;
68 color0.texture = msaa_tex;
70 color0.resolve_texture = resolve_tex;
72 color0.texture = resolve_tex;
76 RenderTarget render_target_desc;
77 render_target_desc.SetColorAttachment(color0, 0u);
78 render_target_desc.SetupDepthStencilAttachments(
80 *context->GetResourceAllocator(),
81 swapchain_image->GetSize(),
86 swapchain_image->GetDepthStencilTexture()
90 return std::unique_ptr<KHRSurfaceVK>(
91 new KHRSurfaceVK(render_target_desc, std::move(swap_callback)));