Files
Xune/UIX.RenderApi.Skia/Microsoft/Iris/Render/Graphics/Dx9GraphicsDevice.cs
T
2021-07-11 23:07:04 -05:00

129 lines
4.0 KiB
C#

// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Render.Graphics.Dx9GraphicsDevice
// Assembly: UIX.RenderApi, Version=4.8.0.0, Culture=neutral, PublicKeyToken=ddd0da4d3e678217
// MVID: D47658B8-A8EA-43D6-8837-ECE823BFFFC1
// Assembly location: C:\Program Files\Zune\UIX.RenderApi.dll
using Microsoft.Iris.Render.Internal;
namespace Microsoft.Iris.Render.Graphics
{
internal abstract class Dx9GraphicsDevice : GraphicsDevice
{
private Dx9EffectManager m_effectManager;
protected Dx9GraphicsDevice(
RenderSession session,
string stDisplayName,
GraphicsDeviceType type,
GraphicsRenderingQuality renderingQuality)
: base(session, stDisplayName)
{
this.m_deviceType = type;
this.m_graphicsCaps = session.GetGraphicsCaps(type);
this.m_renderingQuality = renderingQuality;
if (this.m_renderingQuality != GraphicsRenderingQuality.MinQuality)
{
Dx9GraphicsDevice.PixelShaderProfileType pixelShaderProfile = (Dx9GraphicsDevice.PixelShaderProfileType)this.m_graphicsCaps.PixelShaderProfile;
if ((byte)this.m_graphicsCaps.VertexShaderProfile < 1 || pixelShaderProfile < PixelShaderProfileType.PS_2_0)
this.m_renderingQuality = GraphicsRenderingQuality.MinQuality;
}
this.m_sizeGutterPxl = new Size(1, 1);
this.m_effectManager = new Dx9EffectManager(session, this);
}
protected override void Dispose(bool fInDispose)
{
try
{
if (!fInDispose || this.m_effectManager == null)
return;
this.m_effectManager.Dispose();
this.m_effectManager = null;
}
finally
{
base.Dispose(fInDispose);
}
}
public override bool IsVideoComposited => true;
public override bool CanPlayAnimations => true;
internal Dx9EffectManager EffectManager => this.m_effectManager;
internal string PixelShaderProfile
{
get
{
switch ((byte)this.m_graphicsCaps.PixelShaderProfile)
{
case 0:
return "ps_1_1";
case 1:
return "ps_1_2";
case 2:
return "ps_1_3";
case 3:
return "ps_1_4";
case 4:
return "ps_2_0";
case 5:
return "ps_2_a";
case 6:
return "ps_2_b";
case 7:
return "ps_3_0";
default:
return "ps_1_1";
}
}
}
internal string VertexShaderProfile
{
get
{
switch ((byte)this.m_graphicsCaps.VertexShaderProfile)
{
case 0:
return "vs_1_1";
case 1:
return "vs_2_0";
case 2:
return "vs_2_a";
case 3:
return "vs_3_0";
default:
return "vs_1_1";
}
}
}
public override bool CanPlayAnimationType(AnimationInputType type) => true;
internal override EffectTemplate CreateEffectTemplate(string stName) => new Dx9EffectTemplate(this.m_session, this, stName);
private enum PixelShaderProfileType : byte
{
PS_1_1,
PS_1_2,
PS_1_3,
PS_1_4,
PS_2_0,
PS_2_A,
PS_2_B,
PS_3_0,
}
private enum VertexShaderProfileType : byte
{
VS_1_1,
VS_2_0,
VS_2_A,
VS_3_0,
}
}
}