nv-sgl 0.6.0__cp313-cp313-win_amd64.whl

Sign up to get free protection for your applications and to get access to all the features.
Files changed (142) hide show
  1. include/tevclient.h +393 -0
  2. nv_sgl-0.6.0.dist-info/LICENSE +29 -0
  3. nv_sgl-0.6.0.dist-info/METADATA +21 -0
  4. nv_sgl-0.6.0.dist-info/RECORD +142 -0
  5. nv_sgl-0.6.0.dist-info/WHEEL +5 -0
  6. nv_sgl-0.6.0.dist-info/top_level.txt +1 -0
  7. sgl/__init__.py +15 -0
  8. sgl/__init__.pyi +6738 -0
  9. sgl/d3d12/D3D12Core.dll +0 -0
  10. sgl/d3d12/d3d12SDKLayers.dll +0 -0
  11. sgl/dxcompiler.dll +0 -0
  12. sgl/dxil.dll +0 -0
  13. sgl/gfx.dll +0 -0
  14. sgl/include/sgl/app/app.h +113 -0
  15. sgl/include/sgl/core/bitmap.h +302 -0
  16. sgl/include/sgl/core/crypto.h +89 -0
  17. sgl/include/sgl/core/data_type.h +46 -0
  18. sgl/include/sgl/core/dds_file.h +103 -0
  19. sgl/include/sgl/core/enum.h +201 -0
  20. sgl/include/sgl/core/error.h +161 -0
  21. sgl/include/sgl/core/file_stream.h +77 -0
  22. sgl/include/sgl/core/file_system_watcher.h +141 -0
  23. sgl/include/sgl/core/format.h +36 -0
  24. sgl/include/sgl/core/fwd.h +90 -0
  25. sgl/include/sgl/core/hash.h +45 -0
  26. sgl/include/sgl/core/input.h +522 -0
  27. sgl/include/sgl/core/logger.h +214 -0
  28. sgl/include/sgl/core/macros.h +184 -0
  29. sgl/include/sgl/core/maths.h +45 -0
  30. sgl/include/sgl/core/memory_mapped_file.h +112 -0
  31. sgl/include/sgl/core/memory_mapped_file_stream.h +32 -0
  32. sgl/include/sgl/core/memory_stream.h +74 -0
  33. sgl/include/sgl/core/object.h +683 -0
  34. sgl/include/sgl/core/platform.h +239 -0
  35. sgl/include/sgl/core/plugin.h +331 -0
  36. sgl/include/sgl/core/resolver.h +39 -0
  37. sgl/include/sgl/core/short_vector.h +141 -0
  38. sgl/include/sgl/core/static_vector.h +111 -0
  39. sgl/include/sgl/core/stream.h +54 -0
  40. sgl/include/sgl/core/string.h +276 -0
  41. sgl/include/sgl/core/struct.h +360 -0
  42. sgl/include/sgl/core/thread.h +28 -0
  43. sgl/include/sgl/core/timer.h +52 -0
  44. sgl/include/sgl/core/traits.h +15 -0
  45. sgl/include/sgl/core/type_utils.h +19 -0
  46. sgl/include/sgl/core/window.h +177 -0
  47. sgl/include/sgl/device/agility_sdk.h +24 -0
  48. sgl/include/sgl/device/blit.h +88 -0
  49. sgl/include/sgl/device/buffer_cursor.h +162 -0
  50. sgl/include/sgl/device/command.h +539 -0
  51. sgl/include/sgl/device/cuda_api.h +766 -0
  52. sgl/include/sgl/device/cuda_interop.h +39 -0
  53. sgl/include/sgl/device/cuda_utils.h +107 -0
  54. sgl/include/sgl/device/cursor_utils.h +129 -0
  55. sgl/include/sgl/device/device.h +668 -0
  56. sgl/include/sgl/device/device_resource.h +37 -0
  57. sgl/include/sgl/device/fence.h +91 -0
  58. sgl/include/sgl/device/formats.h +330 -0
  59. sgl/include/sgl/device/framebuffer.h +85 -0
  60. sgl/include/sgl/device/fwd.h +164 -0
  61. sgl/include/sgl/device/helpers.h +20 -0
  62. sgl/include/sgl/device/hot_reload.h +75 -0
  63. sgl/include/sgl/device/input_layout.h +74 -0
  64. sgl/include/sgl/device/kernel.h +69 -0
  65. sgl/include/sgl/device/memory_heap.h +155 -0
  66. sgl/include/sgl/device/native_formats.h +342 -0
  67. sgl/include/sgl/device/native_handle.h +73 -0
  68. sgl/include/sgl/device/native_handle_traits.h +65 -0
  69. sgl/include/sgl/device/pipeline.h +138 -0
  70. sgl/include/sgl/device/print.h +45 -0
  71. sgl/include/sgl/device/python/cursor_utils.h +853 -0
  72. sgl/include/sgl/device/query.h +52 -0
  73. sgl/include/sgl/device/raytracing.h +84 -0
  74. sgl/include/sgl/device/reflection.h +1254 -0
  75. sgl/include/sgl/device/resource.h +705 -0
  76. sgl/include/sgl/device/sampler.h +57 -0
  77. sgl/include/sgl/device/shader.h +516 -0
  78. sgl/include/sgl/device/shader_cursor.h +85 -0
  79. sgl/include/sgl/device/shader_object.h +94 -0
  80. sgl/include/sgl/device/shader_offset.h +67 -0
  81. sgl/include/sgl/device/shared_handle.h +12 -0
  82. sgl/include/sgl/device/slang_utils.h +54 -0
  83. sgl/include/sgl/device/swapchain.h +74 -0
  84. sgl/include/sgl/device/types.h +782 -0
  85. sgl/include/sgl/math/colorspace.h +56 -0
  86. sgl/include/sgl/math/constants.h +7 -0
  87. sgl/include/sgl/math/float16.h +146 -0
  88. sgl/include/sgl/math/matrix.h +6 -0
  89. sgl/include/sgl/math/matrix_math.h +746 -0
  90. sgl/include/sgl/math/matrix_types.h +207 -0
  91. sgl/include/sgl/math/python/primitivetype.h +33 -0
  92. sgl/include/sgl/math/quaternion.h +6 -0
  93. sgl/include/sgl/math/quaternion_math.h +484 -0
  94. sgl/include/sgl/math/quaternion_types.h +83 -0
  95. sgl/include/sgl/math/ray.h +47 -0
  96. sgl/include/sgl/math/scalar_math.h +249 -0
  97. sgl/include/sgl/math/scalar_types.h +107 -0
  98. sgl/include/sgl/math/vector.h +6 -0
  99. sgl/include/sgl/math/vector_math.h +1796 -0
  100. sgl/include/sgl/math/vector_types.h +336 -0
  101. sgl/include/sgl/python/nanobind.h +489 -0
  102. sgl/include/sgl/python/py_doc.h +11600 -0
  103. sgl/include/sgl/python/sgl_ext_pch.h +8 -0
  104. sgl/include/sgl/sgl.h +21 -0
  105. sgl/include/sgl/sgl_pch.h +6 -0
  106. sgl/include/sgl/stl/bit.h +377 -0
  107. sgl/include/sgl/tests/testing.h +54 -0
  108. sgl/include/sgl/ui/fwd.h +34 -0
  109. sgl/include/sgl/ui/imgui_config.h +43 -0
  110. sgl/include/sgl/ui/ui.h +71 -0
  111. sgl/include/sgl/ui/widgets.h +918 -0
  112. sgl/include/sgl/utils/python/slangpy.h +366 -0
  113. sgl/include/sgl/utils/renderdoc.h +50 -0
  114. sgl/include/sgl/utils/slangpy.h +153 -0
  115. sgl/include/sgl/utils/tev.h +93 -0
  116. sgl/include/sgl/utils/texture_loader.h +106 -0
  117. sgl/math/__init__.pyi +5083 -0
  118. sgl/platform/__init__.pyi +102 -0
  119. sgl/renderdoc/__init__.pyi +51 -0
  120. sgl/sgl.dll +0 -0
  121. sgl/sgl_ext.cp313-win_amd64.pyd +0 -0
  122. sgl/shaders/nvapi/nvHLSLExtns.h +2315 -0
  123. sgl/shaders/nvapi/nvHLSLExtnsInternal.h +758 -0
  124. sgl/shaders/nvapi/nvShaderExtnEnums.h +142 -0
  125. sgl/shaders/sgl/device/blit.slang +93 -0
  126. sgl/shaders/sgl/device/nvapi.slang +5 -0
  127. sgl/shaders/sgl/device/nvapi.slangh +7 -0
  128. sgl/shaders/sgl/device/print.slang +445 -0
  129. sgl/shaders/sgl/math/constants.slang +4 -0
  130. sgl/shaders/sgl/math/ray.slang +29 -0
  131. sgl/shaders/sgl/ui/imgui.slang +49 -0
  132. sgl/slang-glslang.dll +0 -0
  133. sgl/slang-llvm.dll +0 -0
  134. sgl/slang-rt.dll +0 -0
  135. sgl/slang.dll +0 -0
  136. sgl/slangpy/__init__.pyi +268 -0
  137. sgl/tev/__init__.pyi +108 -0
  138. sgl/tevclient.lib +0 -0
  139. sgl/thread/__init__.pyi +4 -0
  140. sgl/ui/__init__.pyi +1118 -0
  141. share/cmake/tevclient/tevclient-config-release.cmake +19 -0
  142. share/cmake/tevclient/tevclient-config.cmake +108 -0
@@ -0,0 +1,336 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+
3
+ #pragma once
4
+
5
+ #include "sgl/math/scalar_types.h"
6
+ #include "sgl/core/error.h"
7
+
8
+ namespace sgl::math {
9
+
10
+ // ----------------------------------------------------------------------------
11
+ // Vector types
12
+ // ----------------------------------------------------------------------------
13
+
14
+ /**
15
+ * Vector type.
16
+ *
17
+ * The semantics are aligned with Slang:
18
+ * - Math operators are element-wise (e.g. +, -, *, /)
19
+ * - Free standing functions for vector operations (e.g. dot(), cross(), etc.)
20
+ *
21
+ * \tparam T Scalar type
22
+ * \tparam N Number of elements (1-4)
23
+ */
24
+ template<typename T, int N>
25
+ struct vector;
26
+
27
+ template<typename T>
28
+ struct vector<T, 1> {
29
+ static constexpr int dimension = 1;
30
+ using value_type = T;
31
+
32
+ union {
33
+ T x;
34
+ T r;
35
+ T s;
36
+ };
37
+ // clang-format off
38
+ /// Default constructor.
39
+ constexpr vector() noexcept = default;
40
+ /// Copy constructor.
41
+ constexpr vector(const vector<T, 1>& other) noexcept = default;
42
+ /// Explicit basic constructor.
43
+ explicit constexpr vector(T x) noexcept : x{x} {}
44
+ /// Explicit basic constructor (scalar).
45
+ template<typename U>
46
+ explicit constexpr vector(U x) noexcept : x{T(x)} {}
47
+ // clang-format on
48
+
49
+ template<typename U>
50
+ constexpr vector(const vector<U, 1>& other) noexcept
51
+ : x{T(other.x)}
52
+ {
53
+ }
54
+
55
+ template<typename U>
56
+ explicit constexpr vector(const std::array<U, 1>& a) noexcept
57
+ : x{T(a[0])}
58
+ {
59
+ }
60
+
61
+ [[nodiscard]] constexpr T& operator[](int index) noexcept
62
+ {
63
+ SGL_ASSERT_LT(index, dimension);
64
+ return (&(this->x))[index];
65
+ }
66
+
67
+ [[nodiscard]] constexpr const T& operator[](int index) const noexcept
68
+ {
69
+ SGL_ASSERT_LT(index, dimension);
70
+ return (&(this->x))[index];
71
+ }
72
+
73
+ [[nodiscard]] static constexpr int length() noexcept { return dimension; }
74
+ };
75
+
76
+ template<typename T>
77
+ struct vector<T, 2> {
78
+ static constexpr int dimension = 2;
79
+ using value_type = T;
80
+
81
+ union {
82
+ struct {
83
+ T x, y;
84
+ };
85
+ struct {
86
+ T r, g;
87
+ };
88
+ struct {
89
+ T s, t;
90
+ };
91
+ };
92
+ // clang-format off
93
+ /// Default constructor.
94
+ constexpr vector() noexcept = default;
95
+ /// Copy constructor.
96
+ constexpr vector(const vector<T, 2>& other) noexcept = default;
97
+ /// Explicit basic constructor.
98
+ constexpr vector(T x, T y) noexcept : x{x}, y{y} {}
99
+ /// Explicit basic constructor (scalar).
100
+ explicit constexpr vector(T scalar) noexcept : x{scalar}, y{scalar} {}
101
+ /// Explicit basic constructor (scalar).
102
+ template<typename U>
103
+ explicit constexpr vector(U scalar) noexcept : x{T(scalar)}, y{T(scalar)} {}
104
+
105
+ template<typename X, typename Y>
106
+ constexpr vector(X x, Y y) noexcept : x{T(x)}, y{T(y)} {}
107
+ // clang-format on
108
+
109
+ template<typename U>
110
+ constexpr vector(const vector<U, 2>& other) noexcept
111
+ : x{T(other.x)}
112
+ , y{T(other.y)}
113
+ {
114
+ }
115
+
116
+ template<typename U>
117
+ explicit constexpr vector(const std::array<U, 2>& a) noexcept
118
+ : x{T(a[0])}
119
+ , y{T(a[1])}
120
+ {
121
+ }
122
+
123
+ [[nodiscard]] constexpr T& operator[](int index) noexcept
124
+ {
125
+ SGL_ASSERT_LT(index, dimension);
126
+ return (&(this->x))[index];
127
+ }
128
+
129
+ [[nodiscard]] constexpr const T& operator[](int index) const noexcept
130
+ {
131
+ SGL_ASSERT_LT(index, dimension);
132
+ return (&(this->x))[index];
133
+ }
134
+
135
+ [[nodiscard]] static constexpr int length() noexcept { return dimension; }
136
+
137
+ #include "vector_swizzle_2.inl"
138
+ };
139
+
140
+ template<typename T>
141
+ struct vector<T, 3> {
142
+ static constexpr int dimension = 3;
143
+ using value_type = T;
144
+
145
+ union {
146
+ struct {
147
+ T x, y, z;
148
+ };
149
+ struct {
150
+ T r, g, b;
151
+ };
152
+ struct {
153
+ T s, t, p;
154
+ };
155
+ };
156
+ // clang-format off
157
+ /// Default constructor.
158
+ constexpr vector() noexcept = default;
159
+ /// Copy constructor.
160
+ constexpr vector(const vector<T, 3>& other) noexcept = default;
161
+ /// Explicit basic constructor.
162
+ constexpr vector(T x, T y, T z) noexcept : x{x}, y{y}, z{z} {}
163
+ /// Explicit basic constructor (scalar).
164
+ explicit constexpr vector(T scalar) noexcept : x{scalar}, y{scalar}, z{scalar} {}
165
+ /// Explicit basic constructor (scalar).
166
+ template<typename U>
167
+ explicit constexpr vector(U scalar) noexcept : x{T(scalar)}, y{T(scalar)}, z{T(scalar)} {}
168
+
169
+ template<typename X, typename Y, typename Z>
170
+ constexpr vector(X x, Y y, Z z) noexcept : x{T(x)}, y{T(y)}, z{T(z)} {}
171
+ template<typename XY, typename Z>
172
+ constexpr vector(vector<XY, 2> xy, Z z) noexcept : x{T(xy.x)}, y{T(xy.y)}, z{T(z)} {}
173
+ template<typename X, typename YZ>
174
+ constexpr vector(X x, vector<YZ, 2> yz) noexcept : x{T(x)}, y{T(yz.x)}, z{T(yz.y)} {}
175
+ // clang-format on
176
+
177
+ template<typename U>
178
+ constexpr vector(const vector<U, 3>& other) noexcept
179
+ : x{T(other.x)}
180
+ , y{T(other.y)}
181
+ , z{T(other.z)}
182
+ {
183
+ }
184
+
185
+ template<typename U>
186
+ explicit constexpr vector(const std::array<U, 3>& a) noexcept
187
+ : x{T(a[0])}
188
+ , y{T(a[1])}
189
+ , z{T(a[2])}
190
+ {
191
+ }
192
+
193
+ [[nodiscard]] constexpr T& operator[](int index) noexcept
194
+ {
195
+ SGL_ASSERT_LT(index, dimension);
196
+ return (&(this->x))[index];
197
+ }
198
+
199
+ [[nodiscard]] constexpr const T& operator[](int index) const noexcept
200
+ {
201
+ SGL_ASSERT_LT(index, dimension);
202
+ return (&(this->x))[index];
203
+ }
204
+
205
+ [[nodiscard]] static constexpr int length() noexcept { return dimension; }
206
+
207
+ #include "vector_swizzle_3.inl"
208
+ };
209
+
210
+ template<typename T>
211
+ struct vector<T, 4> {
212
+ static constexpr int dimension = 4;
213
+ using value_type = T;
214
+
215
+ union {
216
+ struct {
217
+ T x, y, z, w;
218
+ };
219
+ struct {
220
+ T r, g, b, a;
221
+ };
222
+ struct {
223
+ T s, t, p, q;
224
+ };
225
+ };
226
+ // clang-format off
227
+ /// Default constructor.
228
+ constexpr vector() noexcept = default;
229
+ /// Copy constructor.
230
+ constexpr vector(const vector<T, 4>& other) noexcept = default;
231
+ /// Explicit basic constructor.
232
+ constexpr vector(T x, T y, T z, T w) noexcept : x{x}, y{y}, z{z}, w{w} {}
233
+ /// Explicit basic constructor (scalar).
234
+ explicit constexpr vector(T scalar) noexcept : x{scalar}, y{scalar}, z{scalar}, w{scalar} {}
235
+ /// Explicit basic constructor (scalar).
236
+ template<typename U>
237
+ explicit constexpr vector(U scalar) noexcept : x{T(scalar)}, y{T(scalar)}, z{T(scalar)}, w{T(scalar)} {}
238
+
239
+ template<typename X, typename Y, typename Z, typename W>
240
+ constexpr vector(X x, Y y, Z z, W w) noexcept : x{T(x)}, y{T(y)}, z{T(z)}, w{T(w)} {}
241
+ template<typename XY, typename Z, typename W>
242
+ constexpr vector(vector<XY, 2> xy, Z z, W w) noexcept : x{T(xy.x)}, y{T(xy.y)}, z{T(z)}, w{T(w)} {}
243
+ template<typename X, typename YZ, typename W>
244
+ constexpr vector(X x, vector<YZ, 2> yz, W w) noexcept : x{T(x)}, y{T(yz.x)}, z{T(yz.y)}, w{T(w)} {}
245
+ template<typename X, typename Y, typename ZW>
246
+ constexpr vector(X x, Y y, vector<ZW, 2> zw) noexcept : x{T(x)}, y{T(y)}, z{T(zw.x)}, w{T(zw.y)} {}
247
+ template<typename XY, typename ZW>
248
+ constexpr vector(vector<XY, 2> xy, vector<ZW, 2> zw) noexcept : x{T(xy.x)}, y{T(xy.y)}, z{T(zw.x)}, w{T(zw.y)} {}
249
+ template<typename XYZ, typename W>
250
+ constexpr vector(vector<XYZ, 3> xyz, W w) noexcept : x{T(xyz.x)}, y{T(xyz.y)}, z{T(xyz.z)}, w{T(w)} {}
251
+ template<typename X, typename YZW>
252
+ constexpr vector(X x, vector<YZW, 3> yzw) noexcept : x{T(x)}, y{T(yzw.x)}, z{T(yzw.y)}, w{T(yzw.z)} {}
253
+ // clang-format on
254
+
255
+ template<typename U>
256
+ constexpr vector(const vector<U, 4>& other) noexcept
257
+ : x{T(other.x)}
258
+ , y{T(other.y)}
259
+ , z{T(other.z)}
260
+ , w{T(other.w)}
261
+ {
262
+ }
263
+
264
+ template<typename U>
265
+ explicit constexpr vector(const std::array<U, 4>& a) noexcept
266
+ : x{T(a[0])}
267
+ , y{T(a[1])}
268
+ , z{T(a[2])}
269
+ , w{T(a[3])}
270
+ {
271
+ }
272
+
273
+ [[nodiscard]] constexpr T& operator[](int index) noexcept
274
+ {
275
+ SGL_ASSERT_LT(index, dimension);
276
+ return (&(this->x))[index];
277
+ }
278
+
279
+ [[nodiscard]] constexpr const T& operator[](int index) const noexcept
280
+ {
281
+ SGL_ASSERT_LT(index, dimension);
282
+ return (&(this->x))[index];
283
+ }
284
+
285
+ [[nodiscard]] static constexpr int length() noexcept { return dimension; }
286
+
287
+ #include "vector_swizzle_4.inl"
288
+ };
289
+
290
+ using bool1 = vector<bool, 1>;
291
+ using bool2 = vector<bool, 2>;
292
+ using bool3 = vector<bool, 3>;
293
+ using bool4 = vector<bool, 4>;
294
+ using int1 = vector<int, 1>;
295
+ using int2 = vector<int, 2>;
296
+ using int3 = vector<int, 3>;
297
+ using int4 = vector<int, 4>;
298
+ using uint1 = vector<uint, 1>;
299
+ using uint2 = vector<uint, 2>;
300
+ using uint3 = vector<uint, 3>;
301
+ using uint4 = vector<uint, 4>;
302
+ using float1 = vector<float, 1>;
303
+ using float2 = vector<float, 2>;
304
+ using float3 = vector<float, 3>;
305
+ using float4 = vector<float, 4>;
306
+ using float16_t1 = vector<float16_t, 1>;
307
+ using float16_t2 = vector<float16_t, 2>;
308
+ using float16_t3 = vector<float16_t, 3>;
309
+ using float16_t4 = vector<float16_t, 4>;
310
+
311
+ } // namespace sgl::math
312
+
313
+ namespace sgl {
314
+
315
+ using bool1 = math::bool1;
316
+ using bool2 = math::bool2;
317
+ using bool3 = math::bool3;
318
+ using bool4 = math::bool4;
319
+ using int1 = math::int1;
320
+ using int2 = math::int2;
321
+ using int3 = math::int3;
322
+ using int4 = math::int4;
323
+ using uint1 = math::uint1;
324
+ using uint2 = math::uint2;
325
+ using uint3 = math::uint3;
326
+ using uint4 = math::uint4;
327
+ using float1 = math::float1;
328
+ using float2 = math::float2;
329
+ using float3 = math::float3;
330
+ using float4 = math::float4;
331
+ using float16_t1 = math::float16_t1;
332
+ using float16_t2 = math::float16_t2;
333
+ using float16_t3 = math::float16_t3;
334
+ using float16_t4 = math::float16_t4;
335
+
336
+ } // namespace sgl