Added ShaderLoader using shaderc (GCC only)

Signed-off-by: Robear Selwans <robear.selwans@outlook.com>
This commit is contained in:
2021-06-08 09:50:34 +02:00
parent c267a04de4
commit fe03cb933f
8 changed files with 214 additions and 5 deletions

View File

@@ -23,3 +23,10 @@ EV_NS_DEF_BEGIN(JSONLoader)
EV_NS_DEF_FN(JSONAsset, loadAsset, (AssetHandle, handle))
EV_NS_DEF_END(JSONLoader)
EV_NS_DEF_BEGIN(ShaderLoader)
EV_NS_DEF_FN(ShaderAsset, loadAsset, (AssetHandle, handle), (ShaderAssetStage, stage), (CONST_STR, shader_name), (CONST_STR, entrypoint), (CompiledShaderType, type))
EV_NS_DEF_END(ShaderLoader)

View File

@@ -9,3 +9,26 @@ TYPE(TextAsset, struct {
TYPE(JSONAsset, struct {
PTR json_data;
})
TYPE(ShaderAssetStage, enum {
EV_SHADERASSETSTAGE_VERTEX,
EV_SHADERASSETSTAGE_FRAGMENT,
EV_SHADERASSETSTAGE_COMPUTE,
EV_SHADERASSETSTAGE_GEOMETRY,
EV_SHADERASSETSTAGE_DETECT,
EV_SHADERASSETSTAGE_COUNT
})
TYPE(CompiledShaderType, enum {
EV_SHADER_ASM,
EV_SHADER_BIN
})
TYPE(ShaderAsset, struct {
PTR binary;
U64 len;
GenericHandle internal_handle;
CompiledShaderType type;
})