diff options
author | Hans-Kristian Arntzen <post@arntzen-software.no> | 2019-11-11 13:01:35 +0300 |
---|---|---|
committer | Hans-Kristian Arntzen <post@arntzen-software.no> | 2019-11-11 13:23:21 +0300 |
commit | b9e5fe01b0f24f23be03a429854504c1d3a9407a (patch) | |
tree | 1bfc7b3532d6eb8d708577d084929ba1c8c7bd26 /spirv_cross_c.cpp | |
parent | cb73115bcc0f8d4e3ba9d7b2b3b6fe8d9542e084 (diff) |
HLSL: Add support to remove register() bindings.
Sometimes it's useful to get automatic binding assignment from the D3D
compiler instead.
Diffstat (limited to 'spirv_cross_c.cpp')
-rw-r--r-- | spirv_cross_c.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/spirv_cross_c.cpp b/spirv_cross_c.cpp index 4abf8929..5d9e8027 100644 --- a/spirv_cross_c.cpp +++ b/spirv_cross_c.cpp @@ -769,6 +769,25 @@ spvc_variable_id spvc_compiler_hlsl_remap_num_workgroups_builtin(spvc_compiler c #endif } +spvc_result spvc_compiler_hlsl_set_resource_binding_flags(spvc_compiler compiler, + spvc_hlsl_binding_flags flags) +{ +#if SPIRV_CROSS_C_API_HLSL + if (compiler->backend != SPVC_BACKEND_HLSL) + { + compiler->context->report_error("HLSL function used on a non-HLSL backend."); + return SPVC_ERROR_INVALID_ARGUMENT; + } + + auto &hlsl = *static_cast<CompilerHLSL *>(compiler->compiler.get()); + hlsl.set_resource_binding_flags(flags); + return SPVC_SUCCESS; +#else + compiler->context->report_error("HLSL function used on a non-HLSL backend."); + return SPVC_ERROR_INVALID_ARGUMENT; +#endif +} + spvc_bool spvc_compiler_msl_is_rasterization_disabled(spvc_compiler compiler) { #if SPIRV_CROSS_C_API_MSL |