| 1 | module gfx |
| 2 | |
| 3 | pub enum Backend { |
| 4 | glcore33 |
| 5 | gles3 |
| 6 | d3d11 |
| 7 | metal_ios |
| 8 | metal_macos |
| 9 | metal_simulator |
| 10 | wgpu |
| 11 | dummy |
| 12 | } |
| 13 | |
| 14 | // PixelFormat is C.sg_pixel_format |
| 15 | pub enum PixelFormat as u32 { |
| 16 | _default // value 0 reserved for default-init |
| 17 | none |
| 18 | |
| 19 | r8 |
| 20 | r8sn |
| 21 | r8ui |
| 22 | r8si |
| 23 | |
| 24 | r16 |
| 25 | r16sn |
| 26 | r16ui |
| 27 | r16si |
| 28 | r16f |
| 29 | rg8 |
| 30 | rg8sn |
| 31 | rg8ui |
| 32 | rg8si |
| 33 | |
| 34 | r32ui |
| 35 | r32si |
| 36 | r32f |
| 37 | rg16 |
| 38 | rg16sn |
| 39 | rg16ui |
| 40 | rg16si |
| 41 | rg16f |
| 42 | rgba8 |
| 43 | srgb8a8 |
| 44 | rgba8sn |
| 45 | rgba8ui |
| 46 | rgba8si |
| 47 | bgra8 |
| 48 | rgb10a2 |
| 49 | rg11b10f |
| 50 | rgb9e5 |
| 51 | |
| 52 | rg32ui |
| 53 | rg32si |
| 54 | rg32f |
| 55 | rgba16 |
| 56 | rgba16sn |
| 57 | rgba16ui |
| 58 | rgba16si |
| 59 | rgba16f |
| 60 | |
| 61 | rgba32ui |
| 62 | rgba32si |
| 63 | rgba32f |
| 64 | |
| 65 | depth |
| 66 | depth_stencil |
| 67 | |
| 68 | bc1_rgba |
| 69 | bc2_rgba |
| 70 | bc3_rgba |
| 71 | bc3_srgba |
| 72 | bc4_r |
| 73 | bc4_rsn |
| 74 | bc5_rg |
| 75 | bc5_rgsn |
| 76 | bc6h_rgbf |
| 77 | bc6h_rgbuf |
| 78 | bc7_rgba |
| 79 | bc7_srgba |
| 80 | pvrtc_rgb_2bpp // deprecated |
| 81 | pvrtc_rgb_4bpp // deprecated |
| 82 | pvrtc_rgba_2bpp // deprecated |
| 83 | pvrtc_rgba_4bpp // deprecated |
| 84 | etc2_rgb8 |
| 85 | etc2_srgb8 |
| 86 | etc2_rgb8a1 |
| 87 | etc2_rgba8 |
| 88 | etc2_srgb8a8 |
| 89 | eac_r11 |
| 90 | eac_r11sn |
| 91 | eac_rg11 |
| 92 | eac_rg11sn |
| 93 | astc_4x4_rgba |
| 94 | astc_4x4_srgba |
| 95 | |
| 96 | _num |
| 97 | _force_u32 = 0x7FFFFFFF |
| 98 | } |
| 99 | |
| 100 | pub enum ResourceState as u32 { |
| 101 | initial |
| 102 | alloc |
| 103 | valid |
| 104 | failed |
| 105 | invalid |
| 106 | _force_u32 = 0x7FFFFFFF |
| 107 | } |
| 108 | |
| 109 | pub enum Usage as u32 { |
| 110 | _default // value 0 reserved for default-init |
| 111 | immutable |
| 112 | dynamic |
| 113 | stream |
| 114 | _num |
| 115 | _force_u32 = 0x7FFFFFFF |
| 116 | } |
| 117 | |
| 118 | pub enum BufferType as u32 { |
| 119 | _default // value 0 reserved for default-init |
| 120 | vertexbuffer |
| 121 | indexbuffer |
| 122 | storagebuffer |
| 123 | _num |
| 124 | _force_u32 = 0x7FFFFFFF |
| 125 | } |
| 126 | |
| 127 | pub enum IndexType as u32 { |
| 128 | _default // value 0 reserved for default-init |
| 129 | none |
| 130 | uint16 |
| 131 | uint32 |
| 132 | _num |
| 133 | _force_u32 = 0x7FFFFFFF |
| 134 | } |
| 135 | |
| 136 | pub enum ImageType as u32 { |
| 137 | _default // value 0 reserved for default-init |
| 138 | _2d |
| 139 | cube |
| 140 | _3d |
| 141 | array |
| 142 | _num |
| 143 | _force_u32 = 0x7FFFFFFF |
| 144 | } |
| 145 | |
| 146 | pub enum ImageSampleType as u32 { |
| 147 | _default // value 0 reserved for default-init |
| 148 | float |
| 149 | depth |
| 150 | sint |
| 151 | uint |
| 152 | unfilterable_float |
| 153 | _num |
| 154 | _force_u32 = 0x7FFFFFFF |
| 155 | } |
| 156 | |
| 157 | pub enum SamplerType as u32 { |
| 158 | _default |
| 159 | filtering |
| 160 | nonfiltering |
| 161 | comparison |
| 162 | _num |
| 163 | _force_u32 = 0x7FFFFFFF |
| 164 | } |
| 165 | |
| 166 | pub enum CubeFace as u32 { |
| 167 | pos_x |
| 168 | neg_x |
| 169 | pos_y |
| 170 | neg_y |
| 171 | pos_z |
| 172 | neg_z |
| 173 | num |
| 174 | _force_u32 = 0x7fffffff |
| 175 | } |
| 176 | |
| 177 | pub enum ShaderStage as u32 { |
| 178 | vs |
| 179 | fs |
| 180 | _force_u32 = 0x7FFFFFFF |
| 181 | } |
| 182 | |
| 183 | pub enum PrimitiveType as u32 { |
| 184 | _default // value 0 reserved for default-init |
| 185 | points |
| 186 | lines |
| 187 | line_strip |
| 188 | triangles |
| 189 | triangle_strip |
| 190 | _num |
| 191 | _force_u32 = 0x7FFFFFFF |
| 192 | } |
| 193 | |
| 194 | pub enum Filter as u32 { |
| 195 | _default // value 0 reserved for default-init |
| 196 | none |
| 197 | nearest |
| 198 | linear |
| 199 | _num |
| 200 | _force_u32 = 0x7fffffff |
| 201 | } |
| 202 | |
| 203 | pub enum Wrap as u32 { |
| 204 | _default // value 0 reserved for default-init |
| 205 | repeat // The default wrap mode. |
| 206 | clamp_to_edge |
| 207 | clamp_to_border // not supported on all backends and platforms. To check for support, call sg_query_features(), and check the "clamp_to_border" boolean in the returned sg_features struct. Platforms which don't support SG_WRAP_CLAMP_TO_BORDER will silently fall back to clamp_to_edge without a validation error. |
| 208 | mirrored_repeat |
| 209 | _num |
| 210 | _force_u32 = 0x7FFFFFFF |
| 211 | } |
| 212 | |
| 213 | pub enum BorderColor as u32 { |
| 214 | _default // value 0 reserved for default-init |
| 215 | transparent_black |
| 216 | opaque_black |
| 217 | opaque_white |
| 218 | _num |
| 219 | _force_u32 = 0x7FFFFFFF |
| 220 | } |
| 221 | |
| 222 | pub enum VertexFormat as u32 { |
| 223 | invalid |
| 224 | float |
| 225 | float2 |
| 226 | float3 |
| 227 | float4 |
| 228 | byte4 |
| 229 | byte4n // normalized |
| 230 | ubyte4 |
| 231 | ubyte4n |
| 232 | short2 |
| 233 | short2n |
| 234 | ushort2n |
| 235 | short4 |
| 236 | short4n |
| 237 | ushort4n |
| 238 | uint10_n2 |
| 239 | half2 |
| 240 | half4 |
| 241 | _num |
| 242 | _force_u32 = 0x7FFFFFFF |
| 243 | } |
| 244 | |
| 245 | pub enum VertexStep as u32 { |
| 246 | _default // value 0 reserved for default-init |
| 247 | per_vertex |
| 248 | per_instance |
| 249 | _num |
| 250 | _force_u32 = 0x7FFFFFFF |
| 251 | } |
| 252 | |
| 253 | pub enum UniformType as u32 { |
| 254 | invalid |
| 255 | float |
| 256 | float2 |
| 257 | float3 |
| 258 | float4 |
| 259 | int |
| 260 | int2 |
| 261 | int3 |
| 262 | int4 |
| 263 | mat4 |
| 264 | _num |
| 265 | _force_u32 = 0x7FFFFFFF |
| 266 | } |
| 267 | |
| 268 | pub enum CullMode as u32 { |
| 269 | _default // value 0 reserved for default-init |
| 270 | none |
| 271 | front |
| 272 | back |
| 273 | _num |
| 274 | _force_u32 = 0x7FFFFFFF |
| 275 | } |
| 276 | |
| 277 | // FaceWindin is C.sg_face_winding |
| 278 | pub enum FaceWinding as u32 { |
| 279 | default // value 0 reserved for default-init |
| 280 | ccw |
| 281 | cw |
| 282 | num |
| 283 | force_u32 = 0x7FFFFFFF |
| 284 | } |
| 285 | |
| 286 | pub enum CompareFunc as u32 { |
| 287 | _default // value 0 reserved for default-init |
| 288 | never |
| 289 | less |
| 290 | equal |
| 291 | less_equal |
| 292 | greater |
| 293 | not_equal |
| 294 | greater_equal |
| 295 | always |
| 296 | _num |
| 297 | _force_u32 = 0x7FFFFFFF |
| 298 | } |
| 299 | |
| 300 | pub enum StencilOp as u32 { |
| 301 | _default // value 0 reserved for default-init |
| 302 | keep |
| 303 | zero |
| 304 | replace |
| 305 | incr_clamp |
| 306 | decr_clamp |
| 307 | invert |
| 308 | incr_wrap |
| 309 | decr_wrap |
| 310 | _num |
| 311 | _force_u32 = 0x7FFFFFFF |
| 312 | } |
| 313 | |
| 314 | pub enum BlendFactor as u32 { |
| 315 | _default // value 0 reserved for default-init |
| 316 | zero |
| 317 | one |
| 318 | src_color |
| 319 | one_minus_src_color |
| 320 | src_alpha |
| 321 | one_minus_src_alpha |
| 322 | dst_color |
| 323 | one_minus_dst_color |
| 324 | dst_alpha |
| 325 | one_minus_dst_alpha |
| 326 | src_alpha_saturated |
| 327 | blend_color |
| 328 | one_minus_blend_color |
| 329 | blend_alpha |
| 330 | one_minus_blend_alpha |
| 331 | _num |
| 332 | _force_u32 = 0x7FFFFFFF |
| 333 | } |
| 334 | |
| 335 | pub enum BlendOp as u32 { |
| 336 | _default // value 0 reserved for default-init |
| 337 | add |
| 338 | subtract |
| 339 | reverse_subtract |
| 340 | _num |
| 341 | _force_u32 = 0x7FFFFFFF |
| 342 | } |
| 343 | |
| 344 | pub enum ColorMask as u32 { |
| 345 | _default = 0 // value 0 reserved for default-init |
| 346 | none = 0x10 // special value for 'all channels disabled |
| 347 | r = 1 |
| 348 | g = 2 |
| 349 | rg = 3 |
| 350 | b = 4 |
| 351 | rb = 5 |
| 352 | gb = 6 |
| 353 | rgb = 7 |
| 354 | a = 8 |
| 355 | ra = 9 |
| 356 | ga = 0xa |
| 357 | rga = 0xb |
| 358 | ba = 0xc |
| 359 | rba = 0xd |
| 360 | gba = 0xe |
| 361 | rgba = 0xf |
| 362 | _force_u32 = 0x7FFFFFFF |
| 363 | } |
| 364 | |
| 365 | pub enum LoadAction as u32 { |
| 366 | _default |
| 367 | clear |
| 368 | load |
| 369 | dontcare |
| 370 | _force_u32 = 0x7FFFFFFF |
| 371 | } |
| 372 | |
| 373 | pub enum StoreAction as u32 { |
| 374 | _default |
| 375 | store |
| 376 | dontcare |
| 377 | _force_u32 = 0x7FFFFFFF |
| 378 | } |
| 379 | |
| 380 | pub enum UniformLayout as u32 { |
| 381 | uniformlayout_default = 0 // value 0 reserved for default-init |
| 382 | uniformlayout_native // default: layout depends on currently active backend |
| 383 | uniformlayout_std140 // std140: memory layout according to std140 |
| 384 | _num |
| 385 | _force_u32 = 0x7FFFFFFF |
| 386 | } |
| 387 | |