Files
2023-03-12 20:34:16 +00:00

39 lines
1.6 KiB
C#

// Copyright (c) 2021 homuler
//
// Use of this source code is governed by an MIT-style
// license that can be found in the LICENSE file or at
// https://opensource.org/licenses/MIT.
namespace Mediapipe
{
public enum GpuBufferFormat : uint
{
kUnknown = 0,
kBGRA32 = ('B' << 24) + ('G' << 16) + ('R' << 8) + 'A',
kGrayFloat32 = ('L' << 24) + ('0' << 16) + ('0' << 8) + 'f',
kGrayHalf16 = ('L' << 24) + ('0' << 16) + ('0' << 8) + 'h',
kOneComponent8 = ('L' << 24) + ('0' << 16) + ('0' << 8) + '8',
kTwoComponentHalf16 = ('2' << 24) + ('C' << 16) + ('0' << 8) + 'h',
kTwoComponentFloat32 = ('2' << 24) + ('C' << 16) + ('0' << 8) + 'f',
kBiPlanar420YpCbCr8VideoRange = ('4' << 24) + ('2' << 16) + ('0' << 8) + 'v',
kBiPlanar420YpCbCr8FullRange = ('4' << 24) + ('2' << 16) + ('0' << 8) + 'f',
kRGB24 = 0x00000018, // Note: prefer BGRA32 whenever possible.
kRGBAHalf64 = ('R' << 24) + ('G' << 16) + ('h' << 8) + 'A',
kRGBAFloat128 = ('R' << 24) + ('G' << 16) + ('f' << 8) + 'A',
}
public static class GpuBufferFormatExtension
{
public static ImageFormat.Types.Format ImageFormatFor(this GpuBufferFormat gpuBufferFormat)
{
return SafeNativeMethods.mp__ImageFormatForGpuBufferFormat__ui(gpuBufferFormat);
}
public static GlTextureInfo GlTextureInfoFor(this GpuBufferFormat gpuBufferFormat, int plane, GlVersion glVersion = GlVersion.kGLES3)
{
UnsafeNativeMethods.mp__GlTextureInfoForGpuBufferFormat__ui_i_ui(gpuBufferFormat, plane, glVersion, out var glTextureInfo).Assert();
return glTextureInfo;
}
}
}