diff options
author | Campbell Barton <ideasman42@gmail.com> | 2018-04-24 11:32:08 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2018-04-24 11:32:08 +0300 |
commit | 45374b38808561603a7070359b3938998b1256f6 (patch) | |
tree | 5b7e944aad278b230e9a6cd4ca6d5ee1484e1851 /release/datafiles/blender_icons_geom.py | |
parent | 3581b997d4793e8fd9ad7be7722b01edb2d75287 (diff) |
Icon Generate: write icon size into the header
Diffstat (limited to 'release/datafiles/blender_icons_geom.py')
-rw-r--r-- | release/datafiles/blender_icons_geom.py | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/release/datafiles/blender_icons_geom.py b/release/datafiles/blender_icons_geom.py index 3e2e5732074..9787d18b4f6 100644 --- a/release/datafiles/blender_icons_geom.py +++ b/release/datafiles/blender_icons_geom.py @@ -125,21 +125,29 @@ def write_mesh_data_lists(me): def write_mesh_to_py(fh, ob): - def float_as_byte(f): + def float_as_byte(f, axis_range): + assert(axis_range <= 255) # -1..1 -> 0..255 f = (f + 1.0) * 0.5 - f = int(round(f * 255)) - return min(max(f, 0), 255) + f = int(round(f * axis_range)) + return min(max(f, 0), axis_range) + + def vert_as_byte_pair(v): + return ( + float_as_byte(v[0], coords_range_align[0]), + float_as_byte(v[1], coords_range_align[1]), + ) with TriMesh(ob) as me: tris_coords, tris_colors = write_mesh_data_lists(me) - # pixel size needs to be increased since a pixel needs one extra geom coordinate coords_range = ( ob.get("size_x") or 255, ob.get("size_y") or 255, ) - + # Pixel size needs to be increased since a pixel needs one extra geom coordinate, + # if we're writing 32 pixel, align verts to 33. + coords_range_align = tuple(min(c + 1, 255) for c in coords_range) print("Writing:", fh.name, coords_range) @@ -154,7 +162,7 @@ def write_mesh_to_py(fh, ob): for tri_coords in tris_coords: for vert in tri_coords: - fw(bytes([float_as_byte(c) for c in vert])) + fw(bytes(vert_as_byte_pair(vert))) for tri_color in tris_colors: for color in tri_color: fw(bytes(color)) |