Files
LuaCsForBarotraumaEP/Libraries/MonoGame.Framework/Src/MonoGame.Framework/Graphics/RenderTarget3D.cs
2019-06-25 16:00:44 +03:00

64 lines
2.6 KiB
C#

// MonoGame - Copyright (C) The MonoGame Team
// This file is subject to the terms and conditions defined in
// file 'LICENSE.txt', which is part of this source code package.
using System;
namespace Microsoft.Xna.Framework.Graphics
{
public partial class RenderTarget3D : Texture3D, IRenderTarget
{
public DepthFormat DepthStencilFormat { get; private set; }
public int MultiSampleCount { get; private set; }
public RenderTargetUsage RenderTargetUsage { get; private set; }
public bool IsContentLost { get { return false; } }
public event EventHandler<EventArgs> ContentLost;
private bool SuppressEventHandlerWarningsUntilEventsAreProperlyImplemented()
{
return ContentLost != null;
}
public RenderTarget3D(GraphicsDevice graphicsDevice, int width, int height, int depth, bool mipMap, SurfaceFormat preferredFormat, DepthFormat preferredDepthFormat, int preferredMultiSampleCount, RenderTargetUsage usage)
:base (graphicsDevice, width, height, depth, mipMap, QuerySelectedFormat(graphicsDevice, preferredFormat), true)
{
DepthStencilFormat = preferredDepthFormat;
MultiSampleCount = preferredMultiSampleCount;
RenderTargetUsage = usage;
// If we don't need a depth buffer then we're done.
if (preferredDepthFormat == DepthFormat.None)
return;
PlatformConstruct(graphicsDevice, width, height, mipMap, preferredDepthFormat, preferredMultiSampleCount, usage);
}
protected static SurfaceFormat QuerySelectedFormat(GraphicsDevice graphicsDevice, SurfaceFormat preferredFormat)
{
SurfaceFormat selectedFormat = preferredFormat;
DepthFormat selectedDepthFormat;
int selectedMultiSampleCount;
if (graphicsDevice != null)
{
graphicsDevice.Adapter.QueryRenderTargetFormat(graphicsDevice.GraphicsProfile, preferredFormat, DepthFormat.None, 0,
out selectedFormat, out selectedDepthFormat, out selectedMultiSampleCount);
}
return selectedFormat;
}
public RenderTarget3D(GraphicsDevice graphicsDevice, int width, int height, int depth, bool mipMap, SurfaceFormat preferredFormat, DepthFormat preferredDepthFormat)
:this (graphicsDevice, width, height, depth, mipMap, preferredFormat, preferredDepthFormat, 0, RenderTargetUsage.DiscardContents)
{}
public RenderTarget3D(GraphicsDevice graphicsDevice, int width, int height, int depth)
: this(graphicsDevice, width, height, depth, false, SurfaceFormat.Color, DepthFormat.None, 0, RenderTargetUsage.DiscardContents)
{}
}
}