Skip to content

Commit b00d36d

Browse files
committed
mtl: Map more vertex formats
1 parent 3af6c00 commit b00d36d

File tree

2 files changed

+53
-6
lines changed

2 files changed

+53
-6
lines changed

Diff for: src/backend/metal/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ name = "gfx_backend_metal"
2222
gfx-hal = { path = "../../hal", version = "0.1" }
2323
log = "0.4"
2424
winit = { version = "0.12", optional = true }
25-
metal-rs = "0.8.1"
25+
metal-rs = "0.8.3"
2626
foreign-types = "0.3"
2727
objc = "0.2"
2828
block = "0.1"

Diff for: src/backend/metal/src/conversions.rs

+52-5
Original file line numberDiff line numberDiff line change
@@ -189,11 +189,58 @@ pub fn map_blend_op(operation: &pso::BlendOp) -> (MTLBlendOperation, MTLBlendFac
189189

190190

191191
pub fn map_vertex_format(format: Format) -> Option<MTLVertexFormat> {
192-
// TODO: more formats
193-
Some(match format {
194-
Format::Rgba32Float => MTLVertexFormat::Float4,
195-
Format::Rgb32Float => MTLVertexFormat::Float3,
196-
Format::Rg32Float => MTLVertexFormat::Float2,
192+
use metal::MTLVertexFormat::*;
193+
use hal::format::Format as f;
194+
Some(match format {
195+
f::R8Unorm => UCharNormalized,
196+
f::R8Inorm => CharNormalized,
197+
f::R8Uint => UChar,
198+
f::R8Int => Char,
199+
f::Rg8Unorm => UChar2Normalized,
200+
f::Rg8Inorm => Char2Normalized,
201+
f::Rg8Uint => UChar2,
202+
f::Rg8Int => Char2,
203+
f::Rgb8Unorm => UChar3Normalized,
204+
f::Rgb8Inorm => Char3Normalized,
205+
f::Rgb8Uint => UChar3,
206+
f::Rgb8Int => Char3,
207+
f::Rgba8Unorm => UChar4Normalized,
208+
f::Rgba8Inorm => Char4Normalized,
209+
f::Rgba8Uint => UChar4,
210+
f::Rgba8Int => Char4,
211+
f::Bgra8Unorm => UChar4Normalized_BGRA,
212+
f::R16Unorm => UShortNormalized,
213+
f::R16Inorm => ShortNormalized,
214+
f::R16Uint => UShort,
215+
f::R16Int => Short,
216+
f::R16Float => Half,
217+
f::Rg16Unorm => UShort2Normalized,
218+
f::Rg16Inorm => Short2Normalized,
219+
f::Rg16Uint => UShort2,
220+
f::Rg16Int => Short2,
221+
f::Rg16Float => Half2,
222+
f::Rgb16Unorm => UShort3Normalized,
223+
f::Rgb16Inorm => Short3Normalized,
224+
f::Rgb16Uint => UShort3,
225+
f::Rgb16Int => Short3,
226+
f::Rgb16Float => Half3,
227+
f::Rgba16Unorm => UShort4Normalized,
228+
f::Rgba16Inorm => Short4Normalized,
229+
f::Rgba16Uint => UShort4,
230+
f::Rgba16Int => Short4,
231+
f::Rgba16Float => Half4,
232+
f::R32Uint => UInt,
233+
f::R32Int => Int,
234+
f::R32Float => Float,
235+
f::Rg32Uint => UInt2,
236+
f::Rg32Int => Int2,
237+
f::Rg32Float => Float2,
238+
f::Rgb32Uint => UInt3,
239+
f::Rgb32Int => Int3,
240+
f::Rgb32Float => Float3,
241+
f::Rgba32Uint => UInt4,
242+
f::Rgba32Int => Int4,
243+
f::Rgba32Float => Float4,
197244
_ => return None,
198245
})
199246
}

0 commit comments

Comments
 (0)