language = "C"
cpp_compat = true
include_guard = "__LIBRASHADER_H__"
pragma_once = true
usize_is_size_t = true
documentation_style = "c++"
after_includes = "#ifdef _WIN32\n#include <d3d11.h>\n#else\ntypedef void ID3D11Device;typedef void ID3D11RenderTargetView;typedef void ID3D1ShaderResourceView;\n#endif"
[parse]
parse_deps = true
include = ["librashader",
    "librashader-presets",
    "librashader-preprocess",
    "librashader-reflect",
    "librashader-runtime-gl",
    "librashader-runtime-d3d11"
]


[struct]

[enum]
rename_variants = "ScreamingSnakeCase"
prefix_with_name = true

[export]
include = [
    # preset
    "PFN_lbr_load_preset",
    "PFN_lbr_preset_free",
    "PFN_lbr_preset_set_param",
    "PFN_lbr_preset_get_param",
    "PFN_lbr_preset_print",
    "PFN_lbr_preset_get_runtime_param_names",

    # error
    "PFN_lbr_error_errno",
    "PFN_lbr_error_print",
    "PFN_lbr_error_free",
    "PFN_lbr_error_write",
    "PFN_lbr_error_free_string",

    # gl
    "PFN_lbr_gl_init_context",
    "PFN_lbr_gl_filter_chain_create",
    "PFN_lbr_gl_filter_chain_frame",
    "PFN_lbr_gl_filter_chain_free",

    # d3d11
    "PFN_lbr_d3d11_filter_chain_create",
    "PFN_lbr_d3d11_filter_chain_frame",
    "PFN_lbr_d3d11_filter_chain_free"

]

#exclude = ["LibrashaderError"]
#
[export.rename]
"LibrashaderError" = "_libra_error"
"ShaderPreset" = "_shader_preset"
"FilterChainGL" = "_filter_chain_gl"
"FilterChainOptionsGL" = "filter_chain_gl_opt_t"
"FrameOptionsGL" = "frame_gl_opt_t"
"FilterChainD3D11" = "_filter_chain_d3d11"
"FilterChainOptionsD3D11" = "filter_chain_d3d11_opt_t"
"FrameOptionsD3D11" = "frame_d3d11_opt_t"