mirror of
https://github.com/Karaka-Management/cOMS.git
synced 2026-01-10 19:08:39 +00:00
51 lines
1.2 KiB
C
Executable File
51 lines
1.2 KiB
C
Executable File
/**
|
|
* Jingga
|
|
*
|
|
* @copyright Jingga
|
|
* @license OMS License 2.0
|
|
* @version 1.0.0
|
|
* @link https://jingga.app
|
|
*/
|
|
#ifndef COMS_GPUAPI_ATTRIBUTE_TYPE_H
|
|
#define COMS_GPUAPI_ATTRIBUTE_TYPE_H
|
|
|
|
#include "../stdlib/Types.h"
|
|
#include "../compiler/CompilerUtils.h"
|
|
|
|
enum GpuAttributeType {
|
|
GPU_ATTRIBUTE_TYPE_VERTEX_3D,
|
|
GPU_ATTRIBUTE_TYPE_VERTEX_3D_NORMAL,
|
|
GPU_ATTRIBUTE_TYPE_VERTEX_3D_COLOR,
|
|
GPU_ATTRIBUTE_TYPE_VERTEX_3D_TEXTURE_COLOR,
|
|
GPU_ATTRIBUTE_TYPE_VERTEX_3D_SAMPLER_TEXTURE_COLOR,
|
|
GPU_ATTRIBUTE_TYPE_VERTEX_2D_TEXTURE
|
|
};
|
|
|
|
inline constexpr
|
|
int32 gpuapi_attribute_count(GpuAttributeType type)
|
|
{
|
|
switch (type) {
|
|
case GPU_ATTRIBUTE_TYPE_VERTEX_3D: {
|
|
return 4;
|
|
};
|
|
case GPU_ATTRIBUTE_TYPE_VERTEX_3D_NORMAL: {
|
|
return 2;
|
|
};
|
|
case GPU_ATTRIBUTE_TYPE_VERTEX_3D_COLOR: {
|
|
return 2;
|
|
};
|
|
case GPU_ATTRIBUTE_TYPE_VERTEX_3D_TEXTURE_COLOR: {
|
|
return 2;
|
|
};
|
|
case GPU_ATTRIBUTE_TYPE_VERTEX_3D_SAMPLER_TEXTURE_COLOR: {
|
|
return 3;
|
|
};
|
|
case GPU_ATTRIBUTE_TYPE_VERTEX_2D_TEXTURE: {
|
|
return 2;
|
|
};
|
|
default:
|
|
UNREACHABLE();
|
|
};
|
|
}
|
|
|
|
#endif |