🔨 chore: add auto-generated note, use itertools.batched

This commit is contained in:
Helloyunho 2025-07-03 23:40:07 +09:00
parent 5dbb5beb61
commit d06e7c0cb7
No known key found for this signature in database
GPG Key ID: 6AFA210B0150BE47
4 changed files with 82 additions and 80 deletions

View File

@ -1,7 +1,9 @@
#pragma once
// Generated from ISLE/res/arrow.png // Generated from ISLE/res/arrow.png
// Dimensions: 32x32 // Dimensions: 32x32
// This file is auto-generated, do not edit it.
#pragma once
#include "cursor.h" #include "cursor.h"
static const unsigned char arrow_data[] = { static const unsigned char arrow_data[] = {

View File

@ -1,7 +1,9 @@
#pragma once
// Generated from ISLE/res/busy.png // Generated from ISLE/res/busy.png
// Dimensions: 32x32 // Dimensions: 32x32
// This file is auto-generated, do not edit it.
#pragma once
#include "cursor.h" #include "cursor.h"
static const unsigned char busy_data[] = { static const unsigned char busy_data[] = {

View File

@ -1,7 +1,9 @@
#pragma once
// Generated from ISLE/res/no.png // Generated from ISLE/res/no.png
// Dimensions: 32x32 // Dimensions: 32x32
// This file is auto-generated, do not edit it.
#pragma once
#include "cursor.h" #include "cursor.h"
static const unsigned char no_data[] = { static const unsigned char no_data[] = {

View File

@ -1,5 +1,6 @@
#!/usr/bin/env python3 #!/usr/bin/env python3
import argparse import argparse
import itertools
from PIL import Image from PIL import Image
from pathlib import Path from pathlib import Path
@ -34,14 +35,8 @@ def encode_cursor(image_path: Path):
def to_c_array(name, data): def to_c_array(name, data):
lines = [] lines = []
line = "" for rowdata in itertools.batched(data, 12):
for i, b in enumerate(data): lines.append(", ".join(f"0x{byte:02X}" for byte in rowdata) + ",")
line += f"0x{b:02X}, "
if (i + 1) % 12 == 0:
lines.append(line)
line = ""
if line:
lines.append(line)
array_str = "\n ".join(lines) array_str = "\n ".join(lines)
return f"static const unsigned char {name}[] = {{\n {array_str}\n}};\n" return f"static const unsigned char {name}[] = {{\n {array_str}\n}};\n"
@ -59,10 +54,11 @@ def main():
input_file_name = input_file.stem input_file_name = input_file.stem
output_file = input_file.with_name(f"{input_file_name}_bmp.h") output_file = input_file.with_name(f"{input_file_name}_bmp.h")
with output_file.open("w") as f: with output_file.open("w", newline="\n") as f:
f.write(f"#pragma once\n\n")
f.write(f"// Generated from {input_file}\n") f.write(f"// Generated from {input_file}\n")
f.write(f"// Dimensions: {width}x{height}\n\n") f.write(f"// Dimensions: {width}x{height}\n")
f.write(f"#pragma once\n") f.write("// This file is auto-generated, do not edit it.\n\n")
f.write(f'#include "cursor.h"\n\n') f.write(f'#include "cursor.h"\n\n')
f.write(to_c_array(f"{input_file_name}_data", data)) f.write(to_c_array(f"{input_file_name}_data", data))
f.write("\n") f.write("\n")