|
1 | 1 | <ul class="toc_root_list"><li data-link="index"><span>Slang User's Guide</span>
|
2 | 2 | <ul class="toc_list">
|
3 |
| -<li data-link="00-introduction"><span>Introduction</span> |
| 3 | +<li data-link="introduction"><span>Introduction</span> |
4 | 4 | <ul class="toc_list">
|
5 |
| -<li data-link="00-introduction#why-use-slang"><span>Why use Slang?</span></li> |
6 |
| -<li data-link="00-introduction#who-is-slang-for"><span>Who is Slang for?</span></li> |
7 |
| -<li data-link="00-introduction#who-is-this-guide-for"><span>Who is this guide for?</span></li> |
8 |
| -<li data-link="00-introduction#goals-and-non-goals"><span>Goals and Non-Goals</span></li> |
| 5 | +<li data-link="introduction#why-use-slang"><span>Why use Slang?</span></li> |
| 6 | +<li data-link="introduction#who-is-slang-for"><span>Who is Slang for?</span></li> |
| 7 | +<li data-link="introduction#who-is-this-guide-for"><span>Who is this guide for?</span></li> |
| 8 | +<li data-link="introduction#goals-and-non-goals"><span>Goals and Non-Goals</span></li> |
9 | 9 | </ul>
|
10 | 10 | </li>
|
11 |
| -<li data-link="01-get-started"><span>Getting Started with Slang</span> |
| 11 | +<li data-link="get-started"><span>Getting Started with Slang</span> |
12 | 12 | <ul class="toc_list">
|
13 |
| -<li data-link="01-get-started#installation"><span>Installation</span></li> |
14 |
| -<li data-link="01-get-started#your-first-slang-shader"><span>Your first Slang shader</span></li> |
15 |
| -<li data-link="01-get-started#the-full-example"><span>The full example</span></li> |
| 13 | +<li data-link="get-started#installation"><span>Installation</span></li> |
| 14 | +<li data-link="get-started#your-first-slang-shader"><span>Your first Slang shader</span></li> |
| 15 | +<li data-link="get-started#the-full-example"><span>The full example</span></li> |
16 | 16 | </ul>
|
17 | 17 | </li>
|
18 |
| -<li data-link="02-conventional-features"><span>Conventional Language Features</span> |
| 18 | +<li data-link="conventional-features"><span>Conventional Language Features</span> |
19 | 19 | <ul class="toc_list">
|
20 |
| -<li data-link="02-conventional-features#types"><span>Types</span></li> |
21 |
| -<li data-link="02-conventional-features#expressions"><span>Expressions</span></li> |
22 |
| -<li data-link="02-conventional-features#statements"><span>Statements</span></li> |
23 |
| -<li data-link="02-conventional-features#functions"><span>Functions</span></li> |
24 |
| -<li data-link="02-conventional-features#preprocessor"><span>Preprocessor</span></li> |
25 |
| -<li data-link="02-conventional-features#attributes"><span>Attributes</span></li> |
26 |
| -<li data-link="02-conventional-features#global-variables-and-shader-parameters"><span>Global Variables and Shader Parameters</span></li> |
27 |
| -<li data-link="02-conventional-features#shader-entry-points"><span>Shader Entry Points</span></li> |
28 |
| -<li data-link="02-conventional-features#mixed-shader-entry-points"><span>Mixed Shader Entry Points</span></li> |
| 20 | +<li data-link="conventional-features#types"><span>Types</span></li> |
| 21 | +<li data-link="conventional-features#expressions"><span>Expressions</span></li> |
| 22 | +<li data-link="conventional-features#statements"><span>Statements</span></li> |
| 23 | +<li data-link="conventional-features#functions"><span>Functions</span></li> |
| 24 | +<li data-link="conventional-features#preprocessor"><span>Preprocessor</span></li> |
| 25 | +<li data-link="conventional-features#attributes"><span>Attributes</span></li> |
| 26 | +<li data-link="conventional-features#global-variables-and-shader-parameters"><span>Global Variables and Shader Parameters</span></li> |
| 27 | +<li data-link="conventional-features#shader-entry-points"><span>Shader Entry Points</span></li> |
| 28 | +<li data-link="conventional-features#mixed-shader-entry-points"><span>Mixed Shader Entry Points</span></li> |
29 | 29 | </ul>
|
30 | 30 | </li>
|
31 |
| -<li data-link="03-convenience-features"><span>Basic Convenience Features</span> |
| 31 | +<li data-link="convenience-features"><span>Basic Convenience Features</span> |
32 | 32 | <ul class="toc_list">
|
33 |
| -<li data-link="03-convenience-features#type-inference-in-variable-definitions"><span>Type Inference in Variable Definitions</span></li> |
34 |
| -<li data-link="03-convenience-features#immutable-values"><span>Immutable Values</span></li> |
35 |
| -<li data-link="03-convenience-features#namespaces"><span>Namespaces</span></li> |
36 |
| -<li data-link="03-convenience-features#member-functions"><span>Member functions</span></li> |
37 |
| -<li data-link="03-convenience-features#properties"><span>Properties</span></li> |
38 |
| -<li data-link="03-convenience-features#initializers"><span>Initializers</span></li> |
39 |
| -<li data-link="03-convenience-features#operator-overloading"><span>Operator Overloading</span></li> |
40 |
| -<li data-link="03-convenience-features#subscript-operator"><span>Subscript Operator</span></li> |
41 |
| -<li data-link="03-convenience-features#optionalt-type"><span>`Optional<T>` type</span></li> |
42 |
| -<li data-link="03-convenience-features#reinterprett-operation"><span>`reinterpret<T>` operation</span></li> |
43 |
| -<li data-link="03-convenience-features#struct-inheritance-limited"><span>`struct` inheritance (limited)</span></li> |
44 |
| -<li data-link="03-convenience-features#extensions"><span>Extensions</span></li> |
45 |
| -<li data-link="03-convenience-features#multi-level-break"><span>Multi-level break</span></li> |
46 |
| -<li data-link="03-convenience-features#force-inlining"><span>Force inlining</span></li> |
47 |
| -<li data-link="03-convenience-features#special-scoping-syntax"><span>Special Scoping Syntax</span></li> |
| 33 | +<li data-link="convenience-features#type-inference-in-variable-definitions"><span>Type Inference in Variable Definitions</span></li> |
| 34 | +<li data-link="convenience-features#immutable-values"><span>Immutable Values</span></li> |
| 35 | +<li data-link="convenience-features#namespaces"><span>Namespaces</span></li> |
| 36 | +<li data-link="convenience-features#member-functions"><span>Member functions</span></li> |
| 37 | +<li data-link="convenience-features#properties"><span>Properties</span></li> |
| 38 | +<li data-link="convenience-features#initializers"><span>Initializers</span></li> |
| 39 | +<li data-link="convenience-features#operator-overloading"><span>Operator Overloading</span></li> |
| 40 | +<li data-link="convenience-features#subscript-operator"><span>Subscript Operator</span></li> |
| 41 | +<li data-link="convenience-features#optionalt-type"><span>`Optional<T>` type</span></li> |
| 42 | +<li data-link="convenience-features#reinterprett-operation"><span>`reinterpret<T>` operation</span></li> |
| 43 | +<li data-link="convenience-features#struct-inheritance-limited"><span>`struct` inheritance (limited)</span></li> |
| 44 | +<li data-link="convenience-features#extensions"><span>Extensions</span></li> |
| 45 | +<li data-link="convenience-features#multi-level-break"><span>Multi-level break</span></li> |
| 46 | +<li data-link="convenience-features#force-inlining"><span>Force inlining</span></li> |
| 47 | +<li data-link="convenience-features#special-scoping-syntax"><span>Special Scoping Syntax</span></li> |
48 | 48 | </ul>
|
49 | 49 | </li>
|
50 |
| -<li data-link="04-modules-and-access-control"><span>Modules and Access Control</span> |
| 50 | +<li data-link="modules"><span>Modules and Access Control</span> |
51 | 51 | <ul class="toc_list">
|
52 |
| -<li data-link="04-modules-and-access-control#defining-a-module"><span>Defining a Module</span></li> |
53 |
| -<li data-link="04-modules-and-access-control#importing-a-module"><span>Importing a Module</span></li> |
54 |
| -<li data-link="04-modules-and-access-control#access-control"><span>Access Control</span></li> |
55 |
| -<li data-link="04-modules-and-access-control#legacy-modules"><span>Legacy Modules</span></li> |
| 52 | +<li data-link="modules#defining-a-module"><span>Defining a Module</span></li> |
| 53 | +<li data-link="modules#importing-a-module"><span>Importing a Module</span></li> |
| 54 | +<li data-link="modules#access-control"><span>Access Control</span></li> |
| 55 | +<li data-link="modules#legacy-modules"><span>Legacy Modules</span></li> |
56 | 56 | </ul>
|
57 | 57 | </li>
|
58 |
| -<li data-link="05-capabilities"><span>Capabilities</span> |
| 58 | +<li data-link="capabilities"><span>Capabilities</span> |
59 | 59 | </li>
|
60 |
| -<li data-link="06-interfaces-generics"><span>Interfaces and Generics</span> |
| 60 | +<li data-link="interfaces-generics"><span>Interfaces and Generics</span> |
61 | 61 | <ul class="toc_list">
|
62 |
| -<li data-link="06-interfaces-generics#interfaces"><span>Interfaces</span></li> |
63 |
| -<li data-link="06-interfaces-generics#generics"><span>Generics</span></li> |
64 |
| -<li data-link="06-interfaces-generics#supported-constructs-in-interface-definitions"><span>Supported Constructs in Interface Definitions</span></li> |
65 |
| -<li data-link="06-interfaces-generics#associated-types"><span>Associated Types</span></li> |
66 |
| -<li data-link="06-interfaces-generics#generic-value-parameters"><span>Generic Value Parameters</span></li> |
67 |
| -<li data-link="06-interfaces-generics#interface-typed-values"><span>Interface-typed Values</span></li> |
68 |
| -<li data-link="06-interfaces-generics#extending-a-type-with-additional-interface-conformances"><span>Extending a Type with Additional Interface Conformances</span></li> |
69 |
| -<li data-link="06-interfaces-generics#is-and-as-operator"><span>`is` and `as` Operator</span></li> |
70 |
| -<li data-link="06-interfaces-generics#extensions-to-interfaces"><span>Extensions to Interfaces</span></li> |
| 62 | +<li data-link="interfaces-generics#interfaces"><span>Interfaces</span></li> |
| 63 | +<li data-link="interfaces-generics#generics"><span>Generics</span></li> |
| 64 | +<li data-link="interfaces-generics#supported-constructs-in-interface-definitions"><span>Supported Constructs in Interface Definitions</span></li> |
| 65 | +<li data-link="interfaces-generics#associated-types"><span>Associated Types</span></li> |
| 66 | +<li data-link="interfaces-generics#generic-value-parameters"><span>Generic Value Parameters</span></li> |
| 67 | +<li data-link="interfaces-generics#interface-typed-values"><span>Interface-typed Values</span></li> |
| 68 | +<li data-link="interfaces-generics#extending-a-type-with-additional-interface-conformances"><span>Extending a Type with Additional Interface Conformances</span></li> |
| 69 | +<li data-link="interfaces-generics#is-and-as-operator"><span>`is` and `as` Operator</span></li> |
| 70 | +<li data-link="interfaces-generics#extensions-to-interfaces"><span>Extensions to Interfaces</span></li> |
71 | 71 | </ul>
|
72 | 72 | </li>
|
73 |
| -<li data-link="07-autodiff"><span>Automatic Differentiation</span> |
| 73 | +<li data-link="autodiff"><span>Automatic Differentiation</span> |
74 | 74 | <ul class="toc_list">
|
75 |
| -<li data-link="07-autodiff#using-automatic-differentiation-in-slang"><span>Using Automatic Differentiation in Slang</span></li> |
76 |
| -<li data-link="07-autodiff#mathematic-concepts-and-terminologies"><span>Mathematic Concepts and Terminologies</span></li> |
77 |
| -<li data-link="07-autodiff#differentiable-types"><span>Differentiable Types</span></li> |
78 |
| -<li data-link="07-autodiff#forward-derivative-propagation-function"><span>Forward Derivative Propagation Function</span></li> |
79 |
| -<li data-link="07-autodiff#backward-derivative-propagation-function"><span>Backward Derivative Propagation Function</span></li> |
80 |
| -<li data-link="07-autodiff#builtin-differentiable-functions"><span>Builtin Differentiable Functions</span></li> |
81 |
| -<li data-link="07-autodiff#primal-substitute-functions"><span>Primal Substitute Functions</span></li> |
82 |
| -<li data-link="07-autodiff#working-with-mixed-differentiable-and-non-differentiable-code"><span>Working with Mixed Differentiable and Non-Differentiable Code</span></li> |
83 |
| -<li data-link="07-autodiff#higher-order-differentiation"><span>Higher Order Differentiation</span></li> |
84 |
| -<li data-link="07-autodiff#interactions-with-generics-and-interfaces"><span>Interactions with Generics and Interfaces</span></li> |
85 |
| -<li data-link="07-autodiff#restrictions-of-automatic-differentiation"><span>Restrictions of Automatic Differentiation</span></li> |
| 75 | +<li data-link="autodiff#using-automatic-differentiation-in-slang"><span>Using Automatic Differentiation in Slang</span></li> |
| 76 | +<li data-link="autodiff#mathematic-concepts-and-terminologies"><span>Mathematic Concepts and Terminologies</span></li> |
| 77 | +<li data-link="autodiff#differentiable-types"><span>Differentiable Types</span></li> |
| 78 | +<li data-link="autodiff#forward-derivative-propagation-function"><span>Forward Derivative Propagation Function</span></li> |
| 79 | +<li data-link="autodiff#backward-derivative-propagation-function"><span>Backward Derivative Propagation Function</span></li> |
| 80 | +<li data-link="autodiff#builtin-differentiable-functions"><span>Builtin Differentiable Functions</span></li> |
| 81 | +<li data-link="autodiff#primal-substitute-functions"><span>Primal Substitute Functions</span></li> |
| 82 | +<li data-link="autodiff#working-with-mixed-differentiable-and-non-differentiable-code"><span>Working with Mixed Differentiable and Non-Differentiable Code</span></li> |
| 83 | +<li data-link="autodiff#higher-order-differentiation"><span>Higher Order Differentiation</span></li> |
| 84 | +<li data-link="autodiff#interactions-with-generics-and-interfaces"><span>Interactions with Generics and Interfaces</span></li> |
| 85 | +<li data-link="autodiff#restrictions-of-automatic-differentiation"><span>Restrictions of Automatic Differentiation</span></li> |
86 | 86 | </ul>
|
87 | 87 | </li>
|
88 |
| -<li data-link="08-compiling"><span>Compiling Code with Slang</span> |
| 88 | +<li data-link="compiling"><span>Compiling Code with Slang</span> |
89 | 89 | <ul class="toc_list">
|
90 |
| -<li data-link="08-compiling#concepts"><span>Concepts</span></li> |
91 |
| -<li data-link="08-compiling#command-line-compilation-with-slangc"><span>Command-Line Compilation with `slangc`</span></li> |
92 |
| -<li data-link="08-compiling#using-the-compilation-api"><span>Using the Compilation API</span></li> |
| 90 | +<li data-link="compiling#concepts"><span>Concepts</span></li> |
| 91 | +<li data-link="compiling#command-line-compilation-with-slangc"><span>Command-Line Compilation with `slangc`</span></li> |
| 92 | +<li data-link="compiling#using-the-compilation-api"><span>Using the Compilation API</span></li> |
93 | 93 | </ul>
|
94 | 94 | </li>
|
95 |
| -<li data-link="09-targets"><span>Supported Compilation Targets</span> |
| 95 | +<li data-link="targets"><span>Supported Compilation Targets</span> |
96 | 96 | <ul class="toc_list">
|
97 |
| -<li data-link="09-targets#background-and-terminology"><span>Background and Terminology</span></li> |
98 |
| -<li data-link="09-targets#direct3d-11"><span>Direct3D 11</span></li> |
99 |
| -<li data-link="09-targets#direct3d-12"><span>Direct3D 12</span></li> |
100 |
| -<li data-link="09-targets#vulkan"><span>Vulkan</span></li> |
101 |
| -<li data-link="09-targets#opengl"><span>OpenGL</span></li> |
102 |
| -<li data-link="09-targets#cuda-and-optix"><span>CUDA and OptiX</span></li> |
103 |
| -<li data-link="09-targets#cpu-compute"><span>CPU Compute</span></li> |
104 |
| -<li data-link="09-targets#summary"><span>Summary</span></li> |
| 97 | +<li data-link="targets#background-and-terminology"><span>Background and Terminology</span></li> |
| 98 | +<li data-link="targets#direct3d-11"><span>Direct3D 11</span></li> |
| 99 | +<li data-link="targets#direct3d-12"><span>Direct3D 12</span></li> |
| 100 | +<li data-link="targets#vulkan"><span>Vulkan</span></li> |
| 101 | +<li data-link="targets#opengl"><span>OpenGL</span></li> |
| 102 | +<li data-link="targets#cuda-and-optix"><span>CUDA and OptiX</span></li> |
| 103 | +<li data-link="targets#cpu-compute"><span>CPU Compute</span></li> |
| 104 | +<li data-link="targets#summary"><span>Summary</span></li> |
105 | 105 | </ul>
|
106 | 106 | </li>
|
107 | 107 | <li data-link="a1-special-topics"><span>Special Topics</span>
|
|
0 commit comments