blob: 314c786aaa717bf4d92dab00ea326aa5f0da2c8f (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
<ul class="toc_root_list"><li data-link="index"><span>Slang User's Guide</span>
<ul class="toc_list">
<li data-link="00-introduction"><span>Introduction</span>
<ul class="toc_list">
<li data-link="00-introduction#why-use-slang"><span>Why use Slang?</span></li>
<li data-link="00-introduction#who-is-slang-for"><span>Who is Slang for?</span></li>
<li data-link="00-introduction#who-is-this-guide-for"><span>Who is this guide for?</span></li>
<li data-link="00-introduction#goals-and-non-goals"><span>Goals and Non-Goals</span></li>
</ul>
</li>
<li data-link="01-get-started"><span>Getting Started with Slang</span>
<ul class="toc_list">
<li data-link="01-get-started#installation"><span>Installation</span></li>
<li data-link="01-get-started#your-first-slang-shader"><span>Your first Slang shader</span></li>
<li data-link="01-get-started#the-full-example"><span>The full example</span></li>
</ul>
</li>
<li data-link="02-conventional-features"><span>Conventional Language Features</span>
<ul class="toc_list">
<li data-link="02-conventional-features#types"><span>Types</span></li>
<li data-link="02-conventional-features#expressions"><span>Expressions</span></li>
<li data-link="02-conventional-features#statements"><span>Statements</span></li>
<li data-link="02-conventional-features#functions"><span>Functions</span></li>
<li data-link="02-conventional-features#preprocessor"><span>Preprocessor</span></li>
<li data-link="02-conventional-features#attributes"><span>Attributes</span></li>
<li data-link="02-conventional-features#global-variables-and-shader-parameters"><span>Global Variables and Shader Parameters</span></li>
<li data-link="02-conventional-features#shader-entry-points"><span>Shader Entry Points</span></li>
</ul>
</li>
<li data-link="03-convenience-features"><span>Basic Convenience Features</span>
<ul class="toc_list">
<li data-link="03-convenience-features#type-inference-in-variable-definitions"><span>Type Inference in Variable Definitions</span></li>
<li data-link="03-convenience-features#immutable-values"><span>Immutable Values</span></li>
<li data-link="03-convenience-features#member-functions"><span>Member functions</span></li>
<li data-link="03-convenience-features#properties"><span>Properties</span></li>
<li data-link="03-convenience-features#initializers"><span>Initializers</span></li>
<li data-link="03-convenience-features#operator-overloading"><span>Operator Overloading</span></li>
<li data-link="03-convenience-features#struct-inheritance-limited"><span>`struct` inheritance (limited)</span></li>
<li data-link="03-convenience-features#extensions"><span>Extensions</span></li>
<li data-link="03-convenience-features#modules"><span>Modules</span></li>
</ul>
</li>
<li data-link="04-interfaces-generics"><span>Interfaces and Generics</span>
<ul class="toc_list">
<li data-link="04-interfaces-generics#interfaces"><span>Interfaces</span></li>
<li data-link="04-interfaces-generics#generics"><span>Generics</span></li>
<li data-link="04-interfaces-generics#supported-constructs-in-interface-definitions"><span>Supported Constructs in Interface Definitions</span></li>
<li data-link="04-interfaces-generics#associated-types"><span>Associated Types</span></li>
<li data-link="04-interfaces-generics#generic-value-parameters"><span>Generic Value Parameters</span></li>
<li data-link="04-interfaces-generics#interface-typed-values"><span>Interface-typed Values</span></li>
<li data-link="04-interfaces-generics#extending-a-type-with-additional-interface-conformances"><span>Extending a Type with Additional Interface Conformances</span></li>
<li data-link="04-interfaces-generics#extensions-to-interfaces"><span>Extensions to Interfaces</span></li>
</ul>
</li>
<li data-link="05-compiling"><span>Compiling Code with Slang</span>
<ul class="toc_list">
<li data-link="05-compiling#concepts"><span>Concepts</span></li>
<li data-link="05-compiling#command-line-compilation-with-slangc"><span>Command-Line Compilation with `slangc`</span></li>
<li data-link="05-compiling#using-the-compilation-api"><span>Using the Compilation API</span></li>
</ul>
</li>
<li data-link="06-targets"><span>Suported Compilation Targets</span>
<ul class="toc_list">
<li data-link="06-targets#background-and-terminology"><span>Background and Terminology</span></li>
<li data-link="06-targets#direct3d-11"><span>Direct3D 11</span></li>
<li data-link="06-targets#direct3d-12"><span>Direct3D 12</span></li>
<li data-link="06-targets#vulkan"><span>Vulkan</span></li>
<li data-link="06-targets#opengl"><span>OpenGL</span></li>
<li data-link="06-targets#cuda-and-optix"><span>CUDA and OptiX</span></li>
<li data-link="06-targets#cpu-compute"><span>CPU Compute</span></li>
<li data-link="06-targets#summary"><span>Summary</span></li>
</ul>
</li>
<li data-link="a1-special-topics"><span>Special Topics</span>
<ul class="toc_list">
<li data-link="a1-01-matrix-layout"><span>Handling Matrix Layout Differences on Different Platforms</span>
<ul class="toc_list">
<li data-link="a1-01-matrix-layout#two-conventions-of-matrix-transform-math"><span>Two conventions of matrix transform math</span></li>
<li data-link="a1-01-matrix-layout#discussion"><span>Discussion</span></li>
<li data-link="a1-01-matrix-layout#matrix-layout"><span>Matrix Layout</span></li>
<li data-link="a1-01-matrix-layout#overriding-default-matrix-layout"><span>Overriding default matrix layout</span></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>
|