<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.alliedmods.net/index.php?action=history&amp;feed=atom&amp;title=AMBuild_FXC_API</id>
	<title>AMBuild FXC API - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.alliedmods.net/index.php?action=history&amp;feed=atom&amp;title=AMBuild_FXC_API"/>
	<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=AMBuild_FXC_API&amp;action=history"/>
	<updated>2026-05-16T11:01:39Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.6</generator>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=AMBuild_FXC_API&amp;diff=11039&amp;oldid=prev</id>
		<title>BAILOPAN at 18:11, 10 August 2020</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=AMBuild_FXC_API&amp;diff=11039&amp;oldid=prev"/>
		<updated>2020-08-10T18:11:14Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 18:11, 10 August 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l22&quot; &gt;Line 22:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 22:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Example==&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;==Example==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;shaders = builder.tools.FXC('all-shaders', 'game::shaders')&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;shaders = builder.tools.FXC('all-shaders', 'game::shaders')&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;shaders.listDefineName = 'SHADER_LIST'&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;shaders.listDefineName = 'SHADER_LIST'&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l33&quot; &gt;Line 33:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 34:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;program.custom += [shaders]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;program.custom += [shaders]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot;&gt;&amp;#160;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Outputs=&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=Outputs=&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>BAILOPAN</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=AMBuild_FXC_API&amp;diff=10210&amp;oldid=prev</id>
		<title>BAILOPAN: /* Integration */</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=AMBuild_FXC_API&amp;diff=10210&amp;oldid=prev"/>
		<updated>2016-09-26T04:39:04Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Integration&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 04:39, 26 September 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l57&quot; &gt;Line 57:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 57:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;void InitializeShaders(ID3D11Device* device)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;void InitializeShaders(ID3D11Device* device)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# define CREATE_SHADER(prefix) &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;d3d11&lt;/del&gt;-&amp;gt;CreateVertexShader(prefix##_Bytes, prefix##_Length, &amp;amp;prefix);&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# define CREATE_SHADER(prefix) &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;device&lt;/ins&gt;-&amp;gt;CreateVertexShader(prefix##_Bytes, prefix##_Length, &amp;amp;prefix);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; SHADER_LIST(CREATE_SHADER)&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;#160;&amp;#160; SHADER_LIST(CREATE_SHADER)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# undef CREATE_SHADER&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;# undef CREATE_SHADER&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>BAILOPAN</name></author>
		
	</entry>
	<entry>
		<id>https://wiki.alliedmods.net/index.php?title=AMBuild_FXC_API&amp;diff=10209&amp;oldid=prev</id>
		<title>BAILOPAN: Created page with &quot;AMBuild has rudimentary support for compiling and integrating HLSL shaders into a C++ project, via Microsoft's FXC tool.  FXC is a somewhat tricky tool because it compiles onl...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.alliedmods.net/index.php?title=AMBuild_FXC_API&amp;diff=10209&amp;oldid=prev"/>
		<updated>2016-09-26T04:29:59Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;AMBuild has rudimentary support for compiling and integrating HLSL shaders into a C++ project, via Microsoft&amp;#039;s FXC tool.  FXC is a somewhat tricky tool because it compiles onl...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;AMBuild has rudimentary support for compiling and integrating HLSL shaders into a C++ project, via Microsoft's FXC tool.&lt;br /&gt;
&lt;br /&gt;
FXC is a somewhat tricky tool because it compiles only one function at a time. This results in many, many output files, which become difficult to manage for developers and can slow down the compilation process. AMBuild addresses this by generating &amp;quot;unified&amp;quot; files for a collection of shaders. The unified file acts a single include and translation unit for generated shader code.&lt;br /&gt;
&lt;br /&gt;
=Creating an HLSL job=&lt;br /&gt;
&lt;br /&gt;
The HLSL job constructor can be accessed via &amp;lt;tt&amp;gt;builder.tools.FXC&amp;lt;/tt&amp;gt;, which takes the following parameters:&lt;br /&gt;
* &amp;lt;tt&amp;gt;prefix&amp;lt;/tt&amp;gt; - A prefix to use for naming unified files.&lt;br /&gt;
* &amp;lt;tt&amp;gt;namespace&amp;lt;/tt&amp;gt; - An optional string containing a fully-qualified namespace. For example, if you pass 'game::shaders', unified source and header code will be wrapped in a &amp;quot;shaders&amp;quot; namespace, inside a &amp;quot;games&amp;quot; namespace.&lt;br /&gt;
&lt;br /&gt;
This function will construct an FxcJob object, which has the following additional properties:&lt;br /&gt;
* &amp;lt;tt&amp;gt;listDefineName&amp;lt;/tt&amp;gt; - Optional name for a compile-time macro that will be defined in the unified shader header. This macro (explained further below) allows iterating over defined shaders in the preprocessor.&lt;br /&gt;
* &amp;lt;tt&amp;gt;shaders&amp;lt;/tt&amp;gt; - A list of shader translation units.&lt;br /&gt;
&lt;br /&gt;
Each shader translation unit should be a dictionary with the following keys:&lt;br /&gt;
* &amp;lt;tt&amp;gt;'source'&amp;lt;/tt&amp;gt; - Path to the HLSL source file.&lt;br /&gt;
* &amp;lt;tt&amp;gt;'variable'&amp;lt;/tt&amp;gt; - HLSL generates shaders as byte blobs assigned to a variable. This specifies the prefix that AMBuild will use to name the variable. For example, if you specify 'ModelShader', AMBuild will assign the bytes to 'ModelShader_Bytes' and the length to 'ModelShader_Length'.&lt;br /&gt;
* &amp;lt;tt&amp;gt;'profile'&amp;lt;/tt&amp;gt; - The Shader Model profile to use.&lt;br /&gt;
* &amp;lt;tt&amp;gt;'entrypoint'&amp;lt;/tt&amp;gt; - Optional. If specified, the entrypoint function of the shader. If not specified, AMBuild assumes it is 'main'.&lt;br /&gt;
&lt;br /&gt;
The FxcJob object can be added to the &amp;lt;tt&amp;gt;custom&amp;lt;/tt&amp;gt; list of a C++ job.&lt;br /&gt;
&lt;br /&gt;
==Example==&lt;br /&gt;
shaders = builder.tools.FXC('all-shaders', 'game::shaders')&lt;br /&gt;
shaders.listDefineName = 'SHADER_LIST'&lt;br /&gt;
shaders.shaders += [&lt;br /&gt;
  {&lt;br /&gt;
    'source': 'quad_vertex_shader.hlsl',&lt;br /&gt;
    'variable': 'QuadVertexShader',&lt;br /&gt;
    'profile': 'vs_5_0',&lt;br /&gt;
  },&lt;br /&gt;
]&lt;br /&gt;
&lt;br /&gt;
program.custom += [shaders]&lt;br /&gt;
&lt;br /&gt;
=Outputs=&lt;br /&gt;
AMBuild's FXC tool will generate two files of note, using the prefix specified in the job constructor. For example, if the job's constructor specified 'all-shaders' as above, the following files will be generated:&lt;br /&gt;
* &amp;lt;tt&amp;gt;all-shaders-include.h&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;all-shaders-bytecode.cxx&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The include file declares two variables for every shader translation unit. Using the example above, it would contain the following:&lt;br /&gt;
* &amp;lt;tt&amp;gt;extern const uint8_t* QuadVertexShader_Bytes;&amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt;extern const size_t QuadVertexShader_Length;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Respectively, these would contain the bytecode blob and blob length for each shader. The include file can be included from any C++ file in the binary - it's automatically placed in the include path.&lt;br /&gt;
&lt;br /&gt;
The bytecode file provides definitions for all the variables declared in the include file. It is automatically added to the compilation step (and linker step), so you do not need to handle it.&lt;br /&gt;
&lt;br /&gt;
=Integration=&lt;br /&gt;
With the example above, we also defined a &amp;lt;tt&amp;gt;listDefineName&amp;lt;/tt&amp;gt;. This provides some metaprogramming potential without having to modify AMBuild. For example, we can do the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;quot;all-shaders-include.h&amp;quot;&lt;br /&gt;
&lt;br /&gt;
ID3D11VertexShader* QuadVertexShader = nullptr;&lt;br /&gt;
&lt;br /&gt;
void InitializeShaders(ID3D11Device* device)&lt;br /&gt;
{&lt;br /&gt;
# define CREATE_SHADER(prefix) d3d11-&amp;gt;CreateVertexShader(prefix##_Bytes, prefix##_Length, &amp;amp;prefix);&lt;br /&gt;
  SHADER_LIST(CREATE_SHADER)&lt;br /&gt;
# undef CREATE_SHADER&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Currently, the list define iterates over all shaders. As needed we can extend the tool to iterate over shader types as well, or to specify custom unifier methods.&lt;/div&gt;</summary>
		<author><name>BAILOPAN</name></author>
		
	</entry>
</feed>