dawn-cmake/src/common/VertexFormatUtils.h
Brandon Jones e3f10e3d8e Updated VertexFormat enums
Shifts the older enum values up by 30, but if anyone was using values
rather than the enums themselves they'd land on the right formats
anyway.

Bug: dawn:695
Change-Id: I92a177b427fb1bb14b60d9280f89d030c5941a38
Reviewed-on: https://dawn-review.googlesource.com/c/dawn/+/42561
Commit-Queue: Brandon Jones <bajones@chromium.org>
Commit-Queue: Kai Ninomiya <kainino@chromium.org>
Auto-Submit: Brandon Jones <bajones@chromium.org>
Reviewed-by: Kai Ninomiya <kainino@chromium.org>
2021-02-26 02:20:25 +00:00

65 lines
3.3 KiB
C++

// Copyright 2021 The Dawn Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
#ifndef DAWNNATIVE_VERTEX_FORMAT_UTILS_H_
#define DAWNNATIVE_VERTEX_FORMAT_UTILS_H_
#include <array>
#include <dawn/webgpu_cpp.h>
namespace dawn {
static constexpr std::array<wgpu::VertexFormat, 30> kAllVertexFormats = {
wgpu::VertexFormat::Uint8x2, wgpu::VertexFormat::Uint8x4, wgpu::VertexFormat::Sint8x2,
wgpu::VertexFormat::Sint8x4, wgpu::VertexFormat::Unorm8x2, wgpu::VertexFormat::Unorm8x4,
wgpu::VertexFormat::Snorm8x2, wgpu::VertexFormat::Snorm8x4, wgpu::VertexFormat::Uint16x2,
wgpu::VertexFormat::Uint16x4, wgpu::VertexFormat::Unorm16x2, wgpu::VertexFormat::Unorm16x4,
wgpu::VertexFormat::Sint16x2, wgpu::VertexFormat::Sint16x4, wgpu::VertexFormat::Snorm16x2,
wgpu::VertexFormat::Snorm16x4, wgpu::VertexFormat::Float16x2, wgpu::VertexFormat::Float16x4,
wgpu::VertexFormat::Float32, wgpu::VertexFormat::Float32x2, wgpu::VertexFormat::Float32x3,
wgpu::VertexFormat::Float32x4, wgpu::VertexFormat::Uint32, wgpu::VertexFormat::Uint32x2,
wgpu::VertexFormat::Uint32x3, wgpu::VertexFormat::Uint32x4, wgpu::VertexFormat::Sint32,
wgpu::VertexFormat::Sint32x2, wgpu::VertexFormat::Sint32x3, wgpu::VertexFormat::Sint32x4,
};
static constexpr std::array<wgpu::VertexFormat, 30> kAllDeprecatedVertexFormats = {
wgpu::VertexFormat::UChar2, wgpu::VertexFormat::UChar4,
wgpu::VertexFormat::Char2, wgpu::VertexFormat::Char4,
wgpu::VertexFormat::UChar2Norm, wgpu::VertexFormat::UChar4Norm,
wgpu::VertexFormat::Char2Norm, wgpu::VertexFormat::Char4Norm,
wgpu::VertexFormat::UShort2, wgpu::VertexFormat::UShort4,
wgpu::VertexFormat::UShort2Norm, wgpu::VertexFormat::UShort4Norm,
wgpu::VertexFormat::Short2, wgpu::VertexFormat::Short4,
wgpu::VertexFormat::Short2Norm, wgpu::VertexFormat::Short4Norm,
wgpu::VertexFormat::Half2, wgpu::VertexFormat::Half4,
wgpu::VertexFormat::Float, wgpu::VertexFormat::Float2,
wgpu::VertexFormat::Float3, wgpu::VertexFormat::Float4,
wgpu::VertexFormat::UInt, wgpu::VertexFormat::UInt2,
wgpu::VertexFormat::UInt3, wgpu::VertexFormat::UInt4,
wgpu::VertexFormat::Int, wgpu::VertexFormat::Int2,
wgpu::VertexFormat::Int3, wgpu::VertexFormat::Int4,
};
bool IsDeprecatedVertexFormat(wgpu::VertexFormat format);
wgpu::VertexFormat NormalizeVertexFormat(wgpu::VertexFormat format);
uint32_t VertexFormatNumComponents(wgpu::VertexFormat format);
size_t VertexFormatComponentSize(wgpu::VertexFormat format);
size_t VertexFormatSize(wgpu::VertexFormat format);
const char* GetWGSLVertexFormatType(wgpu::VertexFormat textureFormat);
} // namespace dawn
#endif