internal DepthStencilBuffer(GraphicsDevice device, Texture2D depthTexture, bool isReadOnly) : base(device) { DescriptionInternal = depthTexture.Description; depthTexture.AddReferenceInternal(); Texture = depthTexture; resourceId = Texture.ResourceId; if (Description.Format == PixelFormat.D24_UNorm_S8_UInt || Description.Format == PixelFormat.D32_Float_S8X24_UInt) { IsDepthBuffer = true; IsStencilBuffer = true; } else if (Description.Format == PixelFormat.D32_Float || Description.Format == PixelFormat.D16_UNorm) { IsDepthBuffer = true; IsStencilBuffer = false; } else { throw new NotSupportedException("The provided depth stencil format is currently not supported"); // implement composition for other formats } #if !SILICONSTUDIO_PARADOX_GRAPHICS_API_OPENGLES if (isReadOnly) { if (device.versionMajor < 4) { needReadOnlySynchronization = true; throw new NotImplementedException(); } } #endif }
internal DepthStencilBuffer(GraphicsDevice device, Texture2D depthTexture, bool isReadOnly) : base(device) { DescriptionInternal = depthTexture.Description; depthTexture.AddReferenceInternal(); Texture = depthTexture; resourceId = Texture.ResourceId; if (Description.Format == PixelFormat.D24_UNorm_S8_UInt || Description.Format == PixelFormat.D32_Float_S8X24_UInt) { IsDepthBuffer = true; IsStencilBuffer = true; } else if (Description.Format == PixelFormat.D32_Float || Description.Format == PixelFormat.D16_UNorm) { IsDepthBuffer = true; IsStencilBuffer = false; } else throw new NotSupportedException("The provided depth stencil format is currently not supported"); // implement composition for other formats #if !SILICONSTUDIO_PARADOX_GRAPHICS_API_OPENGLES if (isReadOnly) { if (device.versionMajor < 4) { needReadOnlySynchronization = true; throw new NotImplementedException(); } } #endif }
internal DepthStencilBuffer(GraphicsDevice device, Texture2D depthTexture, bool isReadOnly) : base(device) { DescriptionInternal = depthTexture.Description; Texture = depthTexture; Texture.AddReferenceInternal(); this.isReadOnly = isReadOnly; InitializeViews(out HasStencil); }