MayaFlux 0.5.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches

◆ detect_stage_from_extension()

std::optional< ShaderStage > MayaFlux::Portal::Graphics::ShaderFoundry::detect_stage_from_extension ( const std::string &  filepath)
static

Auto-detect shader stage from file extension.

Parameters
filepathPath to shader file
Returns
Detected stage, or nullopt if unknown

Delegates to VKShaderModule::detect_stage_from_extension().

Definition at line 1362 of file ShaderFoundry.cpp.

1363{
1364 auto vk_stage = Core::VKShaderModule::detect_stage_from_extension(filepath);
1365 if (!vk_stage.has_value()) {
1366 return std::nullopt;
1367 }
1368
1369 switch (*vk_stage) {
1370 case vk::ShaderStageFlagBits::eCompute:
1371 return ShaderStage::COMPUTE;
1372 case vk::ShaderStageFlagBits::eVertex:
1373 return ShaderStage::VERTEX;
1374 case vk::ShaderStageFlagBits::eFragment:
1375 return ShaderStage::FRAGMENT;
1376 case vk::ShaderStageFlagBits::eGeometry:
1377 return ShaderStage::GEOMETRY;
1378 case vk::ShaderStageFlagBits::eTessellationControl:
1380 case vk::ShaderStageFlagBits::eTessellationEvaluation:
1382 case vk::ShaderStageFlagBits::eMeshEXT:
1383 return ShaderStage::MESH;
1384 case vk::ShaderStageFlagBits::eTaskEXT:
1385 return ShaderStage::TASK;
1386 default:
1387 return std::nullopt;
1388 }
1389}
static std::optional< vk::ShaderStageFlagBits > detect_stage_from_extension(const std::string &filepath)
Auto-detect shader stage from file extension.

References MayaFlux::Portal::Graphics::COMPUTE, MayaFlux::Core::VKShaderModule::detect_stage_from_extension(), MayaFlux::Portal::Graphics::FRAGMENT, MayaFlux::Portal::Graphics::GEOMETRY, MayaFlux::Portal::Graphics::MESH, MayaFlux::Portal::Graphics::TASK, MayaFlux::Portal::Graphics::TESS_CONTROL, MayaFlux::Portal::Graphics::TESS_EVALUATION, and MayaFlux::Portal::Graphics::VERTEX.

Referenced by load_shader().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: