Files
MicrosoftIris/UIX.RenderApi/Microsoft/Iris/Render/Graphics/Dx9ComplexImageElement.cs
T
2022-03-03 08:40:19 -06:00

68 lines
3.8 KiB
C#

// Decompiled with JetBrains decompiler
// Type: Microsoft.Iris.Render.Graphics.Dx9ComplexImageElement
// 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.Library;
namespace Microsoft.Iris.Render.Graphics
{
internal class Dx9ComplexImageElement
{
internal static void Generate(ComplexImageElement efiImage, ref Dx9EffectBuilder effectBuilder)
{
VariableInfo variableInfo1 = new VariableInfo()
{
ID = efiImage.MinFilterID,
Type = Dx9VariableType.Integer,
IsDynamic = efiImage.IsDynamicProperty("MinFilter")
};
variableInfo1.Name = variableInfo1.IsDynamic ? effectBuilder.GenerateGlobalVariable(variableInfo1.Type, efiImage.Name + "MinFilter") : effectBuilder.GenerateGlobalConstant(variableInfo1.Type, efiImage.Name + "MinFilter");
variableInfo1.DefaultValue = (int)efiImage.MinFilter;
effectBuilder.AddPropertyVariable(variableInfo1);
string name1 = variableInfo1.Name;
VariableInfo variableInfo2 = new VariableInfo()
{
ID = efiImage.MagFilterID,
Type = Dx9VariableType.Integer,
IsDynamic = efiImage.IsDynamicProperty("MagFilter")
};
variableInfo2.Name = variableInfo2.IsDynamic ? effectBuilder.GenerateGlobalVariable(variableInfo2.Type, efiImage.Name + "MagFilter") : effectBuilder.GenerateGlobalConstant(variableInfo2.Type, efiImage.Name + "MagFilter");
variableInfo2.DefaultValue = (int)efiImage.MagFilter;
effectBuilder.AddPropertyVariable(variableInfo2);
string name2 = variableInfo2.Name;
effectBuilder.AddPropertyVariable(new VariableInfo()
{
ID = efiImage.CoordinateMapIndexID,
Type = Dx9VariableType.Integer,
IsDynamic = efiImage.IsDynamicProperty("CoordinateMapIndex"),
Name = null,
DefaultValue = (int)efiImage.CoordinateMapIndex
});
Dx9TextureInfo dx9TextureInfo = effectBuilder.AllocateTexture();
TextureVariableInfo textureVariableInfo = new TextureVariableInfo();
textureVariableInfo.ID = efiImage.ImageID;
textureVariableInfo.Type = Dx9VariableType.Texture;
textureVariableInfo.Name = effectBuilder.GenerateGlobalVariable(textureVariableInfo.Type, efiImage.Name);
textureVariableInfo.DefaultValue = efiImage.Image;
textureVariableInfo.SamplerName = dx9TextureInfo.Sampler;
textureVariableInfo.MinFilter = InvariantString.Format("<{0}>", name1);
textureVariableInfo.MagFilter = InvariantString.Format("<{0}>", name2);
textureVariableInfo.CoordinateMapID = efiImage.CoordinateMapIndexID;
textureVariableInfo.ImageIndexID = efiImage.ImageIndexID;
effectBuilder.AddPropertyVariable(textureVariableInfo);
effectBuilder.PixelShaderOutput = effectBuilder.GenerateLocalVariable(Dx9VariableType.Vector4, efiImage.Name);
effectBuilder.EmitPixelFragment(InvariantString.Format(" // Load the image\r\n float4 {0} = tex2D({1}, {2});\r\n\r\n", effectBuilder.PixelShaderOutput, dx9TextureInfo.Sampler, dx9TextureInfo.TexCoordInput));
effectBuilder.AddPropertyVariable(new VariableInfo()
{
ID = efiImage.ImageIndexID,
Type = Dx9VariableType.Integer,
IsDynamic = efiImage.IsDynamicProperty("ImageIndex"),
Name = null,
DefaultValue = (int)efiImage.ImageIndex
});
}
}
}