- Fixed a small issue in variable parsing with Textures
- Removed the sharpdx references from the Metro shader generator - Added a basic path searching to the metro shader generator to find the correct path to the fxc tool
This commit is contained in:
parent
2f635020a8
commit
96d6ad095e
@ -1,10 +1,4 @@
|
|||||||
#region Using Statements
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
// This file is part of the ANX.Framework created by the
|
// This file is part of the ANX.Framework created by the
|
||||||
// "ANX.Framework developer group" and released under the Ms-PL license.
|
// "ANX.Framework developer group" and released under the Ms-PL license.
|
||||||
@ -12,22 +6,23 @@ using System.Text;
|
|||||||
|
|
||||||
namespace ANX.Framework.Content.Pipeline.Graphics
|
namespace ANX.Framework.Content.Pipeline.Graphics
|
||||||
{
|
{
|
||||||
public sealed class GeometryContentCollection : ChildCollection<MeshContent, GeometryContent>
|
public sealed class GeometryContentCollection
|
||||||
{
|
: ChildCollection<MeshContent, GeometryContent>
|
||||||
protected GeometryContentCollection(MeshContent parent)
|
{
|
||||||
: base(parent)
|
protected GeometryContentCollection(MeshContent parent)
|
||||||
{
|
: base(parent)
|
||||||
throw new NotImplementedException();
|
{
|
||||||
}
|
throw new NotImplementedException();
|
||||||
|
}
|
||||||
|
|
||||||
protected override MeshContent GetParent(GeometryContent child)
|
protected override MeshContent GetParent(GeometryContent child)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
return child.Parent;
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override void SetParent(GeometryContent child, MeshContent parent)
|
protected override void SetParent(GeometryContent child, MeshContent parent)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
child.Parent = parent;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,27 +1,30 @@
|
|||||||
#region Using Statements
|
using System;
|
||||||
using System;
|
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
|
||||||
using System.Text;
|
|
||||||
using System.Collections.ObjectModel;
|
using System.Collections.ObjectModel;
|
||||||
|
|
||||||
#endregion
|
|
||||||
|
|
||||||
// This file is part of the ANX.Framework created by the
|
// This file is part of the ANX.Framework created by the
|
||||||
// "ANX.Framework developer group" and released under the Ms-PL license.
|
// "ANX.Framework developer group" and released under the Ms-PL license.
|
||||||
// For details see: http://anxframework.codeplex.com/license
|
// For details see: http://anxframework.codeplex.com/license
|
||||||
|
|
||||||
namespace ANX.Framework.Content.Pipeline.Graphics
|
namespace ANX.Framework.Content.Pipeline.Graphics
|
||||||
{
|
{
|
||||||
public sealed class IndexCollection : Collection<int>
|
public sealed class IndexCollection : Collection<int>
|
||||||
{
|
{
|
||||||
public IndexCollection()
|
public IndexCollection()
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
public void AddRange(IEnumerable<int> indices)
|
public void AddRange(IEnumerable<int> indices)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
if (indices == null)
|
||||||
}
|
{
|
||||||
}
|
throw new ArgumentNullException("indices");
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (int index in indices)
|
||||||
|
{
|
||||||
|
Items.Add(index);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,17 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<ProductVersion>8.0.30703</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</ProjectGuid>
|
||||||
|
<RootNamespace>ANX.Framework</RootNamespace>
|
||||||
|
<AssemblyName>ANX.Framework</AssemblyName>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
@ -19,18 +31,6 @@
|
|||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<ProductVersion>8.0.30703</ProductVersion>
|
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
|
||||||
<ProjectGuid>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</ProjectGuid>
|
|
||||||
<RootNamespace>ANX.Framework</RootNamespace>
|
|
||||||
<AssemblyName>ANX.Framework</AssemblyName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -1,5 +1,17 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<ProductVersion>8.0.30703</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</ProjectGuid>
|
||||||
|
<RootNamespace>ANX.Framework</RootNamespace>
|
||||||
|
<AssemblyName>ANX.Framework</AssemblyName>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
@ -19,18 +31,6 @@
|
|||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<ProductVersion>8.0.30703</ProductVersion>
|
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
|
||||||
<ProjectGuid>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</ProjectGuid>
|
|
||||||
<RootNamespace>ANX.Framework</RootNamespace>
|
|
||||||
<AssemblyName>ANX.Framework</AssemblyName>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -1,5 +1,18 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<ProductVersion>10.0.0</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</ProjectGuid>
|
||||||
|
<RootNamespace>ANX.Framework</RootNamespace>
|
||||||
|
<AssemblyName>ANX.Framework</AssemblyName>
|
||||||
|
<ProjectTypeGuids>{69878862-DA7D-4DC6-B0A1-50D8FAB4242F};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
@ -19,19 +32,6 @@
|
|||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<ProductVersion>10.0.0</ProductVersion>
|
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
|
||||||
<ProjectGuid>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</ProjectGuid>
|
|
||||||
<RootNamespace>ANX.Framework</RootNamespace>
|
|
||||||
<AssemblyName>ANX.Framework</AssemblyName>
|
|
||||||
<ProjectTypeGuids>{69878862-DA7D-4DC6-B0A1-50D8FAB4242F};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -1,5 +1,20 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
<Project ToolsVersion="4.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||||
|
<OutputType>Library</OutputType>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<ProductVersion>8.0.30703</ProductVersion>
|
||||||
|
<SchemaVersion>2.0</SchemaVersion>
|
||||||
|
<ProjectGuid>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</ProjectGuid>
|
||||||
|
<RootNamespace>ANX.Framework</RootNamespace>
|
||||||
|
<AssemblyName>ANX.Framework</AssemblyName>
|
||||||
|
<ProjectTypeGuids>{BC8A1FFA-BEE3-4634-8014-F334798102B3};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
||||||
|
<DefaultLanguage>en-US</DefaultLanguage>
|
||||||
|
<PackageCertificateKeyFile>Test_TemporaryKey.pfx</PackageCertificateKeyFile>
|
||||||
|
</PropertyGroup>
|
||||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
<DebugSymbols>true</DebugSymbols>
|
<DebugSymbols>true</DebugSymbols>
|
||||||
<DebugType>full</DebugType>
|
<DebugType>full</DebugType>
|
||||||
@ -19,21 +34,6 @@
|
|||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<PropertyGroup>
|
|
||||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
|
||||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
|
||||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
|
||||||
<OutputType>Library</OutputType>
|
|
||||||
<FileAlignment>512</FileAlignment>
|
|
||||||
<ProductVersion>8.0.30703</ProductVersion>
|
|
||||||
<SchemaVersion>2.0</SchemaVersion>
|
|
||||||
<ProjectGuid>{6899F0C9-70B9-4EB0-9DD3-E598D4BE3E35}</ProjectGuid>
|
|
||||||
<RootNamespace>ANX.Framework</RootNamespace>
|
|
||||||
<AssemblyName>ANX.Framework</AssemblyName>
|
|
||||||
<ProjectTypeGuids>{BC8A1FFA-BEE3-4634-8014-F334798102B3};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}</ProjectTypeGuids>
|
|
||||||
<DefaultLanguage>en-US</DefaultLanguage>
|
|
||||||
<PackageCertificateKeyFile>Test_TemporaryKey.pfx</PackageCertificateKeyFile>
|
|
||||||
</PropertyGroup>
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
@ -31,19 +31,11 @@
|
|||||||
<WarningLevel>4</WarningLevel>
|
<WarningLevel>4</WarningLevel>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Reference Include="SharpDX, Version=2.2.0.0, Culture=neutral, processorArchitecture=MSIL">
|
|
||||||
<SpecificVersion>False</SpecificVersion>
|
|
||||||
<HintPath>..\..\lib\SharpDX\Bin\Standard-net20\SharpDX.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="SharpDX.D3DCompiler">
|
|
||||||
<HintPath>..\..\lib\SharpDX\Bin\Win8Desktop-net20\SharpDX.D3DCompiler.dll</HintPath>
|
|
||||||
</Reference>
|
|
||||||
<Reference Include="System" />
|
<Reference Include="System" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="MetroCodeGenerator.cs" />
|
<Compile Include="MetroCodeGenerator.cs" />
|
||||||
<Compile Include="CompiledPass.cs" />
|
<Compile Include="CompiledPass.cs" />
|
||||||
<Compile Include="IncludeHandler.cs" />
|
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -1,41 +0,0 @@
|
|||||||
using System;
|
|
||||||
using System.IO;
|
|
||||||
using SharpDX.D3DCompiler;
|
|
||||||
|
|
||||||
// This file is part of the ANX.Framework created by the
|
|
||||||
// "ANX.Framework developer group" and released under the Ms-PL license.
|
|
||||||
// For details see: http://anxframework.codeplex.com/license
|
|
||||||
|
|
||||||
namespace DX11MetroShaderGenerator
|
|
||||||
{
|
|
||||||
internal class IncludeHandler : Include
|
|
||||||
{
|
|
||||||
private string directory;
|
|
||||||
|
|
||||||
public IncludeHandler(string directory)
|
|
||||||
{
|
|
||||||
this.directory = directory;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Close(Stream stream)
|
|
||||||
{
|
|
||||||
stream.Close();
|
|
||||||
}
|
|
||||||
|
|
||||||
public Stream Open(IncludeType type, string fileName, Stream parentStream)
|
|
||||||
{
|
|
||||||
return File.OpenRead(Path.Combine(directory, fileName));
|
|
||||||
}
|
|
||||||
|
|
||||||
public IDisposable Shadow
|
|
||||||
{
|
|
||||||
get;
|
|
||||||
set;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Dispose()
|
|
||||||
{
|
|
||||||
throw new NotImplementedException();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -3,7 +3,6 @@ using System.Collections.Generic;
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.IO;
|
using System.IO;
|
||||||
using HLSLParser;
|
using HLSLParser;
|
||||||
using SharpDX.D3DCompiler;
|
|
||||||
|
|
||||||
// This file is part of the ANX.Framework created by the
|
// This file is part of the ANX.Framework created by the
|
||||||
// "ANX.Framework developer group" and released under the Ms-PL license.
|
// "ANX.Framework developer group" and released under the Ms-PL license.
|
||||||
@ -108,16 +107,8 @@ namespace DX11MetroShaderGenerator
|
|||||||
{
|
{
|
||||||
int indexOfOpenParenthesis = entryPoint.IndexOf('(');
|
int indexOfOpenParenthesis = entryPoint.IndexOf('(');
|
||||||
entryPoint = entryPoint.Substring(0, indexOfOpenParenthesis);
|
entryPoint = entryPoint.Substring(0, indexOfOpenParenthesis);
|
||||||
|
|
||||||
/*ShaderBytecode byteCode = ShaderBytecode.Compile(resultSourceCode,
|
return ExecuteCompiler(resultSourceCode, profile, entryPoint);
|
||||||
entryPoint, profile, ShaderFlags.None, EffectFlags.None,
|
|
||||||
null, new IncludeHandler(""));
|
|
||||||
|
|
||||||
byte[] result = new byte[byteCode.BufferSize];
|
|
||||||
byteCode.Data.Read(result, 0, result.Length);
|
|
||||||
return result;*/
|
|
||||||
|
|
||||||
return Execute(resultSourceCode, profile, entryPoint);
|
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
@ -188,31 +179,35 @@ namespace DX11MetroShaderGenerator
|
|||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
private byte[] Execute(string source, string profile, string entryPoint)
|
#region ExecuteCompiler
|
||||||
|
private byte[] ExecuteCompiler(string source, string profile, string entryPoint)
|
||||||
{
|
{
|
||||||
string tempSourcePath = Path.GetTempFileName() + ".fx";
|
string tempSourcePath = Path.GetTempFileName() + ".fx";
|
||||||
string tempDestPath = Path.GetTempFileName() + "_" + profile + ".fxo";
|
string tempDestPath = Path.GetTempFileName() + "_" + profile + ".fxo";
|
||||||
|
|
||||||
File.WriteAllText(tempSourcePath, source);
|
File.WriteAllText(tempSourcePath, source);
|
||||||
|
|
||||||
Process process = new Process();
|
Process process = new Process();
|
||||||
process.StartInfo.FileName = @"C:\Program Files (x86)\Windows Kits\8.0\bin\x86\fxc.exe";
|
process.StartInfo.FileName = GetCompilerFilepath();
|
||||||
process.StartInfo.Arguments = "/E" + entryPoint + " /T" + profile + "_level_9_1 \"" +
|
process.StartInfo.Arguments = "/E" + entryPoint + " /T" + profile +
|
||||||
tempSourcePath + "\" /Fo" + tempDestPath;
|
"_level_9_1 \"" + tempSourcePath + "\" /Fo" + tempDestPath;
|
||||||
|
|
||||||
process.StartInfo.UseShellExecute = false;
|
process.StartInfo.UseShellExecute = false;
|
||||||
process.StartInfo.RedirectStandardError = true;
|
process.StartInfo.RedirectStandardError = true;
|
||||||
process.StartInfo.RedirectStandardOutput = true;
|
process.StartInfo.RedirectStandardOutput = true;
|
||||||
|
|
||||||
string output = "";
|
string output = "";
|
||||||
DataReceivedEventHandler handler = delegate(object sender, DataReceivedEventArgs e)
|
DataReceivedEventHandler logHandler =
|
||||||
|
delegate(object sender, DataReceivedEventArgs e)
|
||||||
{
|
{
|
||||||
if (String.IsNullOrEmpty(e.Data) == false)
|
if (String.IsNullOrEmpty(e.Data) == false)
|
||||||
{
|
{
|
||||||
output += e.Data + "\n";
|
output += e.Data + "\n";
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
process.OutputDataReceived += handler;
|
|
||||||
process.ErrorDataReceived += handler;
|
process.OutputDataReceived += logHandler;
|
||||||
|
process.ErrorDataReceived += logHandler;
|
||||||
|
|
||||||
process.Start();
|
process.Start();
|
||||||
process.BeginErrorReadLine();
|
process.BeginErrorReadLine();
|
||||||
@ -232,5 +227,67 @@ namespace DX11MetroShaderGenerator
|
|||||||
|
|
||||||
return new byte[0];
|
return new byte[0];
|
||||||
}
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region GetCompilerFilepath
|
||||||
|
private string GetCompilerFilepath()
|
||||||
|
{
|
||||||
|
string fxcToolPath = "";
|
||||||
|
|
||||||
|
string subDir = Environment.Is64BitOperatingSystem ? "x64" : "x86";
|
||||||
|
|
||||||
|
string sdkPath = Environment.GetEnvironmentVariable("DXSDK_DIR");
|
||||||
|
if (String.IsNullOrEmpty(sdkPath) == false)
|
||||||
|
{
|
||||||
|
fxcToolPath = Path.Combine(sdkPath, subDir);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
fxcToolPath = GetExistingPathFrom(new string[]
|
||||||
|
{
|
||||||
|
// Win8 paths
|
||||||
|
@"C:\Program Files (x86)\Windows Kits\8.0\bin\" + subDir + "\\",
|
||||||
|
@"C:\Program Files\Windows Kits\8.0\bin\" + subDir + "\\",
|
||||||
|
|
||||||
|
// Win7 paths
|
||||||
|
@"C:\Program Files (x86)\Microsoft DirectX SDK (June 2010)\Utilities\bin\" +
|
||||||
|
subDir + "\\",
|
||||||
|
@"C:\Program Files\Microsoft DirectX SDK (June 2010)\Utilities\bin\" +
|
||||||
|
subDir + "\\",
|
||||||
|
});
|
||||||
|
|
||||||
|
if (String.IsNullOrEmpty(fxcToolPath))
|
||||||
|
{
|
||||||
|
throw new Exception(
|
||||||
|
"Unable to find the DirectX SDK! Make sure to install it.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
fxcToolPath = Path.Combine(fxcToolPath, "fxc.exe");
|
||||||
|
|
||||||
|
if (File.Exists(fxcToolPath) == false)
|
||||||
|
{
|
||||||
|
throw new Exception(
|
||||||
|
"Unable to compile shaders, cause the fxc.exe doesn't exist!");
|
||||||
|
}
|
||||||
|
|
||||||
|
return fxcToolPath;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
#region GetExistingPathFrom
|
||||||
|
private string GetExistingPathFrom(string[] possiblePaths)
|
||||||
|
{
|
||||||
|
foreach (string path in possiblePaths)
|
||||||
|
{
|
||||||
|
if (Directory.Exists(path))
|
||||||
|
{
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
#endregion
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -151,6 +151,7 @@ namespace HLSLParser
|
|||||||
|
|
||||||
int nextSpaceIndex = FindInitialTypeEndSpace(currentText);
|
int nextSpaceIndex = FindInitialTypeEndSpace(currentText);
|
||||||
string variableType = currentText.Substring(0, nextSpaceIndex);
|
string variableType = currentText.Substring(0, nextSpaceIndex);
|
||||||
|
variableType = variableType.Replace(" ", "");
|
||||||
walker.Seek(nextSpaceIndex + 1);
|
walker.Seek(nextSpaceIndex + 1);
|
||||||
|
|
||||||
variableType = ResolveMatrixAndArraySyntax(variableType);
|
variableType = ResolveMatrixAndArraySyntax(variableType);
|
||||||
@ -167,6 +168,18 @@ namespace HLSLParser
|
|||||||
{
|
{
|
||||||
searchScope = text.IndexOf('>');
|
searchScope = text.IndexOf('>');
|
||||||
}
|
}
|
||||||
|
else if (text.StartsWith("Texture") ||
|
||||||
|
text.StartsWith("texture"))
|
||||||
|
{
|
||||||
|
string textureGeneric = text;
|
||||||
|
textureGeneric = textureGeneric.Substring(textureGeneric.IndexOf(' '));
|
||||||
|
textureGeneric = textureGeneric.Trim();
|
||||||
|
if (textureGeneric.StartsWith("<"))
|
||||||
|
{
|
||||||
|
searchScope = text.IndexOf('>');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return text.IndexOf(' ', searchScope);
|
return text.IndexOf(' ', searchScope);
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -114,14 +114,14 @@ Texture2D<float4> Texture : register(t0);";
|
|||||||
[Test]
|
[Test]
|
||||||
public static void TestParseIfVariableWithGenericTexture2D()
|
public static void TestParseIfVariableWithGenericTexture2D()
|
||||||
{
|
{
|
||||||
string variableSource = "Texture2D<float4> Texture : register(t0);";
|
string variableSource = "Texture2D <float4> Texture : register(t0);";
|
||||||
var text = new ParseTextWalker(variableSource);
|
var text = new ParseTextWalker(variableSource);
|
||||||
var result = Variable.TryParse(text);
|
var result = Variable.TryParse(text);
|
||||||
Assert.NotNull(result);
|
Assert.NotNull(result);
|
||||||
Assert.AreEqual("Texture2D<float4>", result.Type);
|
Assert.AreEqual("Texture2D<float4>", result.Type);
|
||||||
Assert.AreEqual("Texture", result.Name);
|
Assert.AreEqual("Texture", result.Name);
|
||||||
Assert.AreEqual("register(t0)", result.Register);
|
Assert.AreEqual("register(t0)", result.Register);
|
||||||
Assert.AreEqual(variableSource, result.ToString());
|
Assert.AreEqual("Texture2D<float4> Texture : register(t0);", result.ToString());
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user