| 421 | use proc_macro2::TokenStream; |
| 422 | |
| 423 | pub fn image_format_from_str(s: &str) -> Result<ImageFormat, &'static str> { |
| 424 | Ok(match s { |
| 425 | "rgba32f" => ImageFormat::Rgba32f, |
| 426 | "rgba16f" => ImageFormat::Rgba16f, |
| 427 | "r32f" => ImageFormat::R32f, |
| 428 | "rgba8" => ImageFormat::Rgba8, |
| 429 | "rgba8_snorm" => ImageFormat::Rgba8Snorm, |
| 430 | "rg32f" => ImageFormat::Rg32f, |
| 431 | "rg16f" => ImageFormat::Rg16f, |
| 432 | "r11f_g11f_b10f" => ImageFormat::R11fG11fB10f, |
| 433 | "r16f" => ImageFormat::R16f, |
| 434 | "rgba16" => ImageFormat::Rgba16, |
| 435 | "rgb10_a2" => ImageFormat::Rgb10A2, |
| 436 | "rg16" => ImageFormat::Rg16, |
| 437 | "rg8" => ImageFormat::Rg8, |
| 438 | "r16" => ImageFormat::R16, |
| 439 | "r8" => ImageFormat::R8, |
| 440 | "rgba16_snorm" => ImageFormat::Rgba16Snorm, |
| 441 | "rg16_snorm" => ImageFormat::Rg16Snorm, |
| 442 | "rg8_snorm" => ImageFormat::Rg8Snorm, |
| 443 | "r16_snorm" => ImageFormat::R16Snorm, |
| 444 | "r8_snorm" => ImageFormat::R8Snorm, |
| 445 | "rgba32i" => ImageFormat::Rgba32i, |
| 446 | "rgba16i" => ImageFormat::Rgba16i, |
| 447 | "rgba8i" => ImageFormat::Rgba8i, |
| 448 | "r32i" => ImageFormat::R32i, |
| 449 | "rg32i" => ImageFormat::Rg32i, |
| 450 | "rg16i" => ImageFormat::Rg16i, |
| 451 | "rg8i" => ImageFormat::Rg8i, |
| 452 | "r16i" => ImageFormat::R16i, |
| 453 | "r8i" => ImageFormat::R8i, |
| 454 | "rgba32ui" => ImageFormat::Rgba32ui, |
| 455 | "rgba16ui" => ImageFormat::Rgba16ui, |
| 456 | "rgba8ui" => ImageFormat::Rgba8ui, |
| 457 | "r32ui" => ImageFormat::R32ui, |
| 458 | "rgb10_a2ui" => ImageFormat::Rgb10A2ui, |
| 459 | "rg32ui" => ImageFormat::Rg32ui, |
| 460 | "rg16ui" => ImageFormat::Rg16ui, |
| 461 | "rg8ui" => ImageFormat::Rg8ui, |
| 462 | "r16ui" => ImageFormat::R16ui, |
| 463 | "r8ui" => ImageFormat::R8ui, |
| 464 | "r64ui" => ImageFormat::R64ui, |
| 465 | "r64i" => ImageFormat::R64i, |
| 466 | _ => { |
| 467 | return Err( |
| 468 | "Unknown specified image format. Use `type=<type>` instead if this is intentional.", |
| 469 | ); |
| 470 | } |
| 471 | }) |
| 472 | } |
| 473 | |
| 474 | /// The sampled type of an unknown image format. |
| 475 | pub enum SampledType { |