Austin Eng | cc2516a | 2023-10-17 20:57:54 +0000 | [diff] [blame] | 1 | // Copyright 2022 The Dawn & Tint Authors |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 2 | // |
Austin Eng | cc2516a | 2023-10-17 20:57:54 +0000 | [diff] [blame] | 3 | // Redistribution and use in source and binary forms, with or without |
| 4 | // modification, are permitted provided that the following conditions are met: |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 5 | // |
Austin Eng | cc2516a | 2023-10-17 20:57:54 +0000 | [diff] [blame] | 6 | // 1. Redistributions of source code must retain the above copyright notice, this |
| 7 | // list of conditions and the following disclaimer. |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 8 | // |
Austin Eng | cc2516a | 2023-10-17 20:57:54 +0000 | [diff] [blame] | 9 | // 2. Redistributions in binary form must reproduce the above copyright notice, |
| 10 | // this list of conditions and the following disclaimer in the documentation |
| 11 | // and/or other materials provided with the distribution. |
| 12 | // |
| 13 | // 3. Neither the name of the copyright holder nor the names of its |
| 14 | // contributors may be used to endorse or promote products derived from |
| 15 | // this software without specific prior written permission. |
| 16 | // |
| 17 | // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
| 18 | // AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
| 19 | // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
| 20 | // DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE |
| 21 | // FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL |
| 22 | // DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR |
| 23 | // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER |
| 24 | // CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, |
| 25 | // OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| 26 | // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 27 | |
| 28 | //////////////////////////////////////////////////////////////////////////////// |
Ben Clayton | 57ded6a | 2023-08-22 13:22:22 +0000 | [diff] [blame] | 29 | // File generated by 'tools/src/cmd/gen' using the template: |
Ben Clayton | cd52f38 | 2023-08-07 13:11:08 +0000 | [diff] [blame] | 30 | // src/tint/lang/core/texel_format.cc.tmpl |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 31 | // |
Ben Clayton | 57ded6a | 2023-08-22 13:22:22 +0000 | [diff] [blame] | 32 | // To regenerate run: './tools/run gen' |
| 33 | // |
| 34 | // Do not modify this file directly |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 35 | //////////////////////////////////////////////////////////////////////////////// |
| 36 | |
Ben Clayton | cd52f38 | 2023-08-07 13:11:08 +0000 | [diff] [blame] | 37 | #include "src/tint/lang/core/texel_format.h" |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 38 | |
Ben Clayton | cd52f38 | 2023-08-07 13:11:08 +0000 | [diff] [blame] | 39 | namespace tint::core { |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 40 | |
| 41 | /// ParseTexelFormat parses a TexelFormat from a string. |
| 42 | /// @param str the string to parse |
Ben Clayton | d2e0db3 | 2022-10-12 18:49:15 +0000 | [diff] [blame] | 43 | /// @returns the parsed enum, or TexelFormat::kUndefined if the string could not be parsed. |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 44 | TexelFormat ParseTexelFormat(std::string_view str) { |
Ben Clayton | d03dcee | 2023-01-18 19:42:03 +0000 | [diff] [blame] | 45 | if (str == "bgra8unorm") { |
| 46 | return TexelFormat::kBgra8Unorm; |
| 47 | } |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 48 | if (str == "r32float") { |
| 49 | return TexelFormat::kR32Float; |
| 50 | } |
| 51 | if (str == "r32sint") { |
| 52 | return TexelFormat::kR32Sint; |
| 53 | } |
| 54 | if (str == "r32uint") { |
| 55 | return TexelFormat::kR32Uint; |
| 56 | } |
Ben Clayton | 448c01b | 2024-02-28 00:23:17 +0000 | [diff] [blame] | 57 | if (str == "r8unorm") { |
| 58 | return TexelFormat::kR8Unorm; |
| 59 | } |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 60 | if (str == "rg32float") { |
| 61 | return TexelFormat::kRg32Float; |
| 62 | } |
| 63 | if (str == "rg32sint") { |
| 64 | return TexelFormat::kRg32Sint; |
| 65 | } |
| 66 | if (str == "rg32uint") { |
| 67 | return TexelFormat::kRg32Uint; |
| 68 | } |
| 69 | if (str == "rgba16float") { |
| 70 | return TexelFormat::kRgba16Float; |
| 71 | } |
| 72 | if (str == "rgba16sint") { |
| 73 | return TexelFormat::kRgba16Sint; |
| 74 | } |
| 75 | if (str == "rgba16uint") { |
| 76 | return TexelFormat::kRgba16Uint; |
| 77 | } |
| 78 | if (str == "rgba32float") { |
| 79 | return TexelFormat::kRgba32Float; |
| 80 | } |
| 81 | if (str == "rgba32sint") { |
| 82 | return TexelFormat::kRgba32Sint; |
| 83 | } |
| 84 | if (str == "rgba32uint") { |
| 85 | return TexelFormat::kRgba32Uint; |
| 86 | } |
| 87 | if (str == "rgba8sint") { |
| 88 | return TexelFormat::kRgba8Sint; |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 89 | } |
| 90 | if (str == "rgba8snorm") { |
| 91 | return TexelFormat::kRgba8Snorm; |
| 92 | } |
| 93 | if (str == "rgba8uint") { |
| 94 | return TexelFormat::kRgba8Uint; |
| 95 | } |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 96 | if (str == "rgba8unorm") { |
| 97 | return TexelFormat::kRgba8Unorm; |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 98 | } |
Ben Clayton | d2e0db3 | 2022-10-12 18:49:15 +0000 | [diff] [blame] | 99 | return TexelFormat::kUndefined; |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 100 | } |
| 101 | |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 102 | std::string_view ToString(TexelFormat value) { |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 103 | switch (value) { |
Ben Clayton | d2e0db3 | 2022-10-12 18:49:15 +0000 | [diff] [blame] | 104 | case TexelFormat::kUndefined: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 105 | return "undefined"; |
Ben Clayton | d03dcee | 2023-01-18 19:42:03 +0000 | [diff] [blame] | 106 | case TexelFormat::kBgra8Unorm: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 107 | return "bgra8unorm"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 108 | case TexelFormat::kR32Float: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 109 | return "r32float"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 110 | case TexelFormat::kR32Sint: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 111 | return "r32sint"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 112 | case TexelFormat::kR32Uint: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 113 | return "r32uint"; |
Ben Clayton | 448c01b | 2024-02-28 00:23:17 +0000 | [diff] [blame] | 114 | case TexelFormat::kR8Unorm: |
| 115 | return "r8unorm"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 116 | case TexelFormat::kRg32Float: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 117 | return "rg32float"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 118 | case TexelFormat::kRg32Sint: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 119 | return "rg32sint"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 120 | case TexelFormat::kRg32Uint: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 121 | return "rg32uint"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 122 | case TexelFormat::kRgba16Float: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 123 | return "rgba16float"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 124 | case TexelFormat::kRgba16Sint: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 125 | return "rgba16sint"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 126 | case TexelFormat::kRgba16Uint: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 127 | return "rgba16uint"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 128 | case TexelFormat::kRgba32Float: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 129 | return "rgba32float"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 130 | case TexelFormat::kRgba32Sint: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 131 | return "rgba32sint"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 132 | case TexelFormat::kRgba32Uint: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 133 | return "rgba32uint"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 134 | case TexelFormat::kRgba8Sint: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 135 | return "rgba8sint"; |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 136 | case TexelFormat::kRgba8Snorm: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 137 | return "rgba8snorm"; |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 138 | case TexelFormat::kRgba8Uint: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 139 | return "rgba8uint"; |
Ben Clayton | db368f1 | 2022-10-11 18:26:18 +0000 | [diff] [blame] | 140 | case TexelFormat::kRgba8Unorm: |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 141 | return "rgba8unorm"; |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 142 | } |
Ben Clayton | 6891960 | 2023-07-28 22:51:18 +0000 | [diff] [blame] | 143 | return "<unknown>"; |
Ben Clayton | 08659d0 | 2022-07-27 22:30:10 +0000 | [diff] [blame] | 144 | } |
| 145 | |
Ben Clayton | cd52f38 | 2023-08-07 13:11:08 +0000 | [diff] [blame] | 146 | } // namespace tint::core |