chromium/third_party/angle/src/image_util/imageformats.h

//
// Copyright 2013 The ANGLE Project Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
//

// imageformats.h: Defines image format types with functions for mip generation
// and copying.

#ifndef IMAGEUTIL_IMAGEFORMATS_H_
#define IMAGEUTIL_IMAGEFORMATS_H_

#include "common/Color.h"

#include <cstdint>

namespace angle
{

// Several structures share functionality for reading, writing or mipmapping but the layout
// must match the texture format which the structure represents. If collapsing or typedefing
// structs in this header, make sure the functionality and memory layout is exactly the same.

struct L8
{};

struct R8
{};

struct A8
{};

struct L8A8
{};

struct A8L8
{};

struct R8G8
{};

struct R8G8B8
{};

struct B8G8R8
{};

struct R5G6B5
{};

struct B5G6R5
{};

struct A8R8G8B8
{};

struct R8G8B8A8
{};

struct R8G8B8A8SRGB
{};

struct B8G8R8A8
{};

struct B8G8R8X8
{};

struct R8G8B8X8
{};

struct A1R5G5B5
{};

struct R5G5B5A1
{};

struct R4G4B4A4
{};

struct A4R4G4B4
{};

struct R16
{};

struct R16G16
{};

struct R16G16B16
{};

struct R16G16B16A16
{};

struct R32
{};

struct R32G32
{};

struct R32G32B32
{};

struct R32G32B32A32
{};

struct R8S
{};

struct R8G8S
{};

struct R8G8B8S
{};

struct R8G8B8A8S
{};

struct R16S
{};

struct R16G16S
{};

struct R16G16B16S
{};

struct R16G16B16A16S
{};

struct R32S
{};

struct R32G32S
{};

struct R32G32B32S
{};

struct R32G32B32A32S
{};

struct A16B16G16R16F
{};

struct R16G16B16A16F
{};

struct R16F
{};

struct A16F
{};

struct L16F
{};

struct L16A16F
{};

struct R16G16F
{};

struct R16G16B16F
{};

struct A32B32G32R32F
{};

struct R32G32B32A32F
{};

struct R32F
{};

struct A32F
{};

struct L32F
{};

struct L32A32F
{};

struct R32G32F
{};

struct R32G32B32F
{};

struct R10G10B10A2
{};
static_assert;

struct R10G10B10A2S
{};
static_assert;

struct R10G10B10X2
{};
static_assert;

struct B10G10R10A2
{};
static_assert;

struct R9G9B9E5
{};
static_assert;

struct R11G11B10F
{};
static_assert;

struct D24S8
{};

struct S8
{};

struct D16
{};

struct D24X8
{};

struct D32F
{};

struct D32
{};

struct D32FS8X24
{};
}  // namespace angle

#endif  // IMAGEUTIL_IMAGEFORMATS_H_