public Surface() : base("UI Surface") { Resources.OnInitialize = (factory, device) => { _device = device; _size = new Size( (int)device.SwapchainFramebuffer.Width, (int)device.SwapchainFramebuffer.Height ); _sampler = device.LinearSampler; ResourceLayout = factory.CreateResourceLayout( new ResourceLayoutDescription( new ResourceLayoutElementDescription( "SurfaceTexture", ResourceKind.TextureReadOnly, ShaderStages.Fragment), new ResourceLayoutElementDescription( "SurfaceSampler", ResourceKind.Sampler, ShaderStages.Fragment))); CreateTexture(); }; Resources.OnDispose = () => { _surface?.Dispose(); _textureView.Dispose(); _texture.Dispose(); ResourceSet.Dispose(); }; }