39 lines
1.6 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|