mirror of
https://github.com/ZuneDev/Xune.git
synced 2026-07-27 13:13:10 -07:00
129 lines
4.0 KiB
C#
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,
|
|
}
|
|
}
|
|
}
|