#!/usr/bin/python
import sys, os, struct

name = "swiftshader"

f = open('%s.bmp' % (name))
out = sys.stdout

def read_data(fmt):
 size = struct.calcsize(fmt)
 data = f.read(size)
 return struct.unpack(fmt, data)

(sig, fsize, res1, res2, offset) = read_data("=HLHHL")
(hsize, w, h, planes, bpp, comp, imgsize) = read_data("=LllHHLL")
out.write("/* AUTOGENERATED BY mklogo.py DO NOT EDIT! */\n\n")
out.write("/* source image: %s size: %dx%dx%d */\n" % (name,w,h,bpp))
pitch = ((w*bpp+31)/32)*4

out.write("extern const int logoWidth = %d;\n" % (w))
out.write("extern const int logoHeight = %d;\n" % (h))

f.seek(offset)

out.write("extern const unsigned int logoData[%d*%d]={\n" % (w, h))
sep = " "

for y in xrange(0,h):
 data = f.read(pitch)
 for x in xrange(0,w):
  # assumes source=32bpp for now
  pixel = map(ord, data[x*4:x*4+4])
  out.write(sep + "0x%02x%02x%02x%02x" % (0xff - pixel[3], pixel[2], pixel[1], pixel[0]))
  sep = ", "
 sep = ",\n "

# the C compiler will pad out any missing Y data

out.write("\n};\n")
