summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorMatthew Waters <matthew@centricular.com>2020-06-12 15:47:01 +1000
committerMatthew Waters <matthew@centricular.com>2020-06-12 15:52:44 +1000
commit1f44cb0519df5853c9ea0252f0bec6ecc1d39170 (patch)
tree2c429221b19a03c34c0cba0ce8794a22588b4263 /ext
parenta2f2ebbe013db7f6107dbe6c3ac107e1b65a819d (diff)
downloadgstreamer-plugins-bad-1f44cb0519df5853c9ea0252f0bec6ecc1d39170.tar.gz
vulkan/shaders: manually indent bin2array
Looks much nicer with some semblance of code formatting Part-of: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/1338>
Diffstat (limited to 'ext')
-rwxr-xr-xext/vulkan/shaders/bin2array.py43
1 files changed, 36 insertions, 7 deletions
diff --git a/ext/vulkan/shaders/bin2array.py b/ext/vulkan/shaders/bin2array.py
index 16462671b..d47bbf5f9 100755
--- a/ext/vulkan/shaders/bin2array.py
+++ b/ext/vulkan/shaders/bin2array.py
@@ -9,16 +9,25 @@ autogenerated_notice = """/*
*/
"""
-def make_sublist_group(lst: list, grp: int) -> list:
+def make_sublist_group (lst: list, grp: int) -> list:
"""
Group list elements into sublists.
make_sublist_group([1, 2, 3, 4, 5, 6, 7], 3) = [[1, 2, 3], [4, 5, 6], 7]
"""
return [lst[i:i+grp] for i in range(0, len(lst), grp)]
-def generate_c_array_data(bindata: bytes, element_prefix: str, element_size: int, element_suffix: str, newline_value: str, newline_after: int, element_separator: str):
+def generate_c_array_data (bindata: bytes,
+ element_prefix: str,
+ element_size: int,
+ element_suffix: str,
+ newline_value: str,
+ newline_after: int,
+ element_separator: str) -> str:
"""
- Generate the contents of a C array
+ Generate the contents of a C array as a hex string
+ e.g:
+ 0x10, 0x20, 0x30, 0x40,
+ 0x50, 0x60, 0x70, 0x80,
"""
hexstr = binascii.hexlify(bindata).decode("UTF-8")
array = []
@@ -32,7 +41,13 @@ def generate_c_array_data(bindata: bytes, element_prefix: str, element_size: int
return newline_value.join([element_separator.join(e) + element_separator for e in array])
-def decorate_c_array_data (hexdata: str, var_name: str, var_type: str, newline_value: str):
+def decorate_c_array_data (hexdata: str,
+ var_name: str,
+ var_type: str,
+ newline_value: str):
+ """
+ Place @hexdata into a valid C array named @var_name of C type @var_type.
+ """
ret = var_type + " " + var_name + "[] = {" + newline_value
ret += hexdata + newline_value
ret += "};" + newline_value
@@ -61,12 +76,26 @@ def main(args):
assert len(file_content) % args.element_size == 0
# get a relative path from the source file to the header to use in an #include
- source_to_header = os.path.relpath (os.path.dirname(args.header_output), os.path.dirname (args.output))
+ source_to_header = os.path.relpath (os.path.dirname (args.header_output),
+ os.path.dirname (args.output))
ret = autogenerated_notice
- ret += "#include \"" + os.path.join (source_to_header, os.path.basename (args.header_output)) + "\"" + args.linebreak_value
+ ret += "#include \""
+ ret += os.path.join (source_to_header,
+ os.path.basename (args.header_output))
+ ret += "\"" + args.linebreak_value
- ret += decorate_c_array_data (generate_c_array_data (file_content, args.element_prefix, args.element_size, args.element_suffix, args.linebreak_value, args.linebreak, args.separator), args.array_name, args.element_type, args.linebreak_value)
+ arr_data = generate_c_array_data (file_content,
+ args.element_prefix,
+ args.element_size,
+ args.element_suffix,
+ args.linebreak_value,
+ args.linebreak,
+ args.separator)
+ ret += decorate_c_array_data (arr_data,
+ args.array_name,
+ args.element_type,
+ args.linebreak_value)
with open (args.output, 'w') as f:
f.write (ret)