feat: update BMapSharp binding
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -14,7 +14,7 @@ def _get_libcmo21_repo_directory() -> Path:
|
|||||||
|
|
||||||
|
|
||||||
def get_input_file_path() -> Path:
|
def get_input_file_path() -> Path:
|
||||||
return _get_libcmo21_repo_directory() / "BMap" / "BMap" / "BMExports.hpp"
|
return _get_libcmo21_repo_directory() / "Ballance" / "BMap" / "BMap" / "BMExports.hpp"
|
||||||
|
|
||||||
|
|
||||||
def _get_bmap_binder_directory() -> Path:
|
def _get_bmap_binder_directory() -> Path:
|
||||||
|
|||||||
@@ -32,6 +32,7 @@ CPP_PY_TYPE_MAP: dict[str, str] = {
|
|||||||
"VXSHADE_MODE": "enum",
|
"VXSHADE_MODE": "enum",
|
||||||
"VXCMPFUNC": "enum",
|
"VXCMPFUNC": "enum",
|
||||||
"VXMESH_LITMODE": "enum",
|
"VXMESH_LITMODE": "enum",
|
||||||
|
"CK_CAMERA_PROJECTION": "enum",
|
||||||
}
|
}
|
||||||
|
|
||||||
CS_ENUM_LIKE: set[str] = set((
|
CS_ENUM_LIKE: set[str] = set((
|
||||||
@@ -46,6 +47,7 @@ CS_ENUM_LIKE: set[str] = set((
|
|||||||
"VXSHADE_MODE",
|
"VXSHADE_MODE",
|
||||||
"VXCMPFUNC",
|
"VXCMPFUNC",
|
||||||
"VXMESH_LITMODE",
|
"VXMESH_LITMODE",
|
||||||
|
"CK_CAMERA_PROJECTION",
|
||||||
))
|
))
|
||||||
|
|
||||||
@dataclass(frozen=True)
|
@dataclass(frozen=True)
|
||||||
@@ -108,10 +110,12 @@ class RenderUtils:
|
|||||||
# only allow 0 and 1 pointer level for string.
|
# only allow 0 and 1 pointer level for string.
|
||||||
match vt_pointer_level:
|
match vt_pointer_level:
|
||||||
case 0:
|
case 0:
|
||||||
marshal_as = f'UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(BMStringMarshaler), MarshalCookie = "{direction_cookie}"'
|
marshaler = 'BMOwnedStringMarshaler' if param.is_input else 'BMStringMarshaler'
|
||||||
|
marshal_as = f'UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof({marshaler})'
|
||||||
cs_type = "string"
|
cs_type = "string"
|
||||||
case 1:
|
case 1:
|
||||||
marshal_as = f'UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof(BMStringArrayMarshaler), MarshalCookie = "{direction_cookie}"'
|
marshaler = 'BMOwnedStringArrayMarshaler' if param.is_input else 'BMStringArrayMarshaler'
|
||||||
|
marshal_as = f'UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof({marshaler})'
|
||||||
cs_type = "string[]"
|
cs_type = "string[]"
|
||||||
case "CKDWORD":
|
case "CKDWORD":
|
||||||
if vt_pointer_level == 0:
|
if vt_pointer_level == 0:
|
||||||
|
|||||||
@@ -4,7 +4,7 @@
|
|||||||
/// <param name="{{ param.var_name }}">Direction: {% if param.is_input -%} input {%- else -%} output {%- endif %}. C++ type: {{ param.var_type.to_c_type() }}. {{ param.var_desc }}</param>
|
/// <param name="{{ param.var_name }}">Direction: {% if param.is_input -%} input {%- else -%} output {%- endif %}. C++ type: {{ param.var_type.to_c_type() }}. {{ param.var_desc }}</param>
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
/// <returns>True if no error, otherwise False.</returns>
|
/// <returns>True if no error, otherwise False.</returns>
|
||||||
[DllImport(g_DllName, EntryPoint = "{{ fct.fct_name }}", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi, ExactSpelling = true)]
|
[DllImport(DLL_NAME, EntryPoint = "{{ fct.fct_name }}", CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Ansi, ExactSpelling = true)]
|
||||||
[return: MarshalAs(UnmanagedType.U1)]
|
[return: MarshalAs(UnmanagedType.U1)]
|
||||||
internal static extern bool {{ fct.fct_name }}(
|
internal static extern bool {{ fct.fct_name }}(
|
||||||
{%- for param in fct.fct_params -%}
|
{%- for param in fct.fct_params -%}
|
||||||
|
|||||||
Reference in New Issue
Block a user