#!/usr/bin/env python3 '''Script to generate BLOCK_SPRITE constant''' BLK_SIZE = 8 def rgb565(r, g, b): return ((r >> 3) << 11) | ((g >> 2) << 5) | (b >> 3); image = [[(0, 0, 0)] * BLK_SIZE for _ in range(BLK_SIZE)] mm = BLK_SIZE//2-1 for y in range(BLK_SIZE//2): for x in range(BLK_SIZE//2): l = min(min(x,y),mm) col = (0xa8*(l+1)//mm,0x48*(l+1)//mm,0xa8*(l+1)//mm) image[y][x] = col image[BLK_SIZE-y-1][x] = col image[y][BLK_SIZE-x-1] = col image[BLK_SIZE-y-1][BLK_SIZE-x-1] = col outb = [] for y in range(BLK_SIZE): outb.append([((rgb565(*image[y][x*2+0]) << 0) | (rgb565(*image[y][x*2+1]) << 16)) for x in range(BLK_SIZE//2)]) print('pub static BLOCK_SPRITE: [[u32; 4];8] = [') for y in outb: print(' [%s],' % (', '.join(('0x%08x' % i) for i in y))) print('];')