maxwell_to_vk: Implement more vertex formats
This commit is contained in:
		| @@ -250,37 +250,111 @@ vk::PrimitiveTopology PrimitiveTopology([[maybe_unused]] const VKDevice& device, | ||||
| vk::Format VertexFormat(Maxwell::VertexAttribute::Type type, Maxwell::VertexAttribute::Size size) { | ||||
|     switch (type) { | ||||
|     case Maxwell::VertexAttribute::Type::SignedNorm: | ||||
|         switch (size) { | ||||
|         case Maxwell::VertexAttribute::Size::Size_8: | ||||
|             return vk::Format::eR8Snorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_8_8: | ||||
|             return vk::Format::eR8G8Snorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_8_8_8: | ||||
|             return vk::Format::eR8G8B8Snorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_8_8_8_8: | ||||
|             return vk::Format::eR8G8B8A8Snorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_16: | ||||
|             return vk::Format::eR16Snorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_16_16: | ||||
|             return vk::Format::eR16G16Snorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_16_16_16: | ||||
|             return vk::Format::eR16G16B16Snorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_16_16_16_16: | ||||
|             return vk::Format::eR16G16B16A16Snorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_10_10_10_2: | ||||
|             return vk::Format::eA2B10G10R10SnormPack32; | ||||
|         default: | ||||
|             break; | ||||
|         } | ||||
|         break; | ||||
|     case Maxwell::VertexAttribute::Type::UnsignedNorm: | ||||
|         switch (size) { | ||||
|         case Maxwell::VertexAttribute::Size::Size_8: | ||||
|             return vk::Format::eR8Unorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_8_8: | ||||
|             return vk::Format::eR8G8Unorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_8_8_8: | ||||
|             return vk::Format::eR8G8B8Unorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_8_8_8_8: | ||||
|             return vk::Format::eR8G8B8A8Unorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_16: | ||||
|             return vk::Format::eR16Unorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_16_16: | ||||
|             return vk::Format::eR16G16Unorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_16_16_16: | ||||
|             return vk::Format::eR16G16B16Unorm; | ||||
|         case Maxwell::VertexAttribute::Size::Size_16_16_16_16: | ||||
|             return vk::Format::eR16G16B16A16Unorm; | ||||
|         default: | ||||
|             break; | ||||
|         } | ||||
|         break; | ||||
|     case Maxwell::VertexAttribute::Type::SignedInt: | ||||
|         break; | ||||
|         switch (size) { | ||||
|         case Maxwell::VertexAttribute::Size::Size_16_16_16_16: | ||||
|             return vk::Format::eR16G16B16A16Sint; | ||||
|         case Maxwell::VertexAttribute::Size::Size_8: | ||||
|             return vk::Format::eR8Sint; | ||||
|         case Maxwell::VertexAttribute::Size::Size_8_8: | ||||
|             return vk::Format::eR8G8Sint; | ||||
|         case Maxwell::VertexAttribute::Size::Size_8_8_8: | ||||
|             return vk::Format::eR8G8B8Sint; | ||||
|         case Maxwell::VertexAttribute::Size::Size_8_8_8_8: | ||||
|             return vk::Format::eR8G8B8A8Sint; | ||||
|         case Maxwell::VertexAttribute::Size::Size_32: | ||||
|             return vk::Format::eR32Sint; | ||||
|         default: | ||||
|             break; | ||||
|         } | ||||
|     case Maxwell::VertexAttribute::Type::UnsignedInt: | ||||
|         switch (size) { | ||||
|         case Maxwell::VertexAttribute::Size::Size_8: | ||||
|             return vk::Format::eR8Uint; | ||||
|         case Maxwell::VertexAttribute::Size::Size_8_8: | ||||
|             return vk::Format::eR8G8Uint; | ||||
|         case Maxwell::VertexAttribute::Size::Size_8_8_8: | ||||
|             return vk::Format::eR8G8B8Uint; | ||||
|         case Maxwell::VertexAttribute::Size::Size_8_8_8_8: | ||||
|             return vk::Format::eR8G8B8A8Uint; | ||||
|         case Maxwell::VertexAttribute::Size::Size_32: | ||||
|             return vk::Format::eR32Uint; | ||||
|         default: | ||||
|             break; | ||||
|         } | ||||
|     case Maxwell::VertexAttribute::Type::UnsignedScaled: | ||||
|         switch (size) { | ||||
|         case Maxwell::VertexAttribute::Size::Size_8_8: | ||||
|             return vk::Format::eR8G8Uscaled; | ||||
|         default: | ||||
|             break; | ||||
|         } | ||||
|         break; | ||||
|     case Maxwell::VertexAttribute::Type::SignedScaled: | ||||
|         break; | ||||
|     case Maxwell::VertexAttribute::Type::Float: | ||||
|         switch (size) { | ||||
|         case Maxwell::VertexAttribute::Size::Size_32_32_32_32: | ||||
|             return vk::Format::eR32G32B32A32Sfloat; | ||||
|         case Maxwell::VertexAttribute::Size::Size_32_32_32: | ||||
|             return vk::Format::eR32G32B32Sfloat; | ||||
|         case Maxwell::VertexAttribute::Size::Size_32_32: | ||||
|             return vk::Format::eR32G32Sfloat; | ||||
|         case Maxwell::VertexAttribute::Size::Size_32: | ||||
|             return vk::Format::eR32Sfloat; | ||||
|         case Maxwell::VertexAttribute::Size::Size_32_32: | ||||
|             return vk::Format::eR32G32Sfloat; | ||||
|         case Maxwell::VertexAttribute::Size::Size_32_32_32: | ||||
|             return vk::Format::eR32G32B32Sfloat; | ||||
|         case Maxwell::VertexAttribute::Size::Size_32_32_32_32: | ||||
|             return vk::Format::eR32G32B32A32Sfloat; | ||||
|         case Maxwell::VertexAttribute::Size::Size_16: | ||||
|             return vk::Format::eR16Sfloat; | ||||
|         case Maxwell::VertexAttribute::Size::Size_16_16: | ||||
|             return vk::Format::eR16G16Sfloat; | ||||
|         case Maxwell::VertexAttribute::Size::Size_16_16_16: | ||||
|             return vk::Format::eR16G16B16Sfloat; | ||||
|         case Maxwell::VertexAttribute::Size::Size_16_16_16_16: | ||||
|             return vk::Format::eR16G16B16A16Sfloat; | ||||
|         default: | ||||
|             break; | ||||
|         } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 ReinUsesLisp
					ReinUsesLisp