// NOTE(inso): how to use:
//
// load up the icon in gimp and choose export, select "c source code (*.c)" as the format
// call the file gimp_icon.c, then include it by uncommenting line below.
//
// make sure the struct in the .c file is called gimp_image (the default).
//
// then just compile and run this program and it'll create linux_icon.h

#include "stdio.h"
// #include "gimp_icon.c"

#define OUTPUT_FILE "linux_icon.h"

int main(void){
    
	FILE* f = fopen(OUTPUT_FILE, "w");
    
	fputs("/* Generated by gen_linux_icon.c */\n", f);
    
	int w = gimp_image.width, h = gimp_image.height;
	fprintf(f, "static const unsigned long linux_icon[] = {\n    %d, %d,", w, h);
    
	const unsigned char* p = gimp_image.pixel_data;
    
	int i;
	for(i = 0; i < (w*h); ++i){
        
		if((i % 6) == 0){
			fputs("\n   ", f);
		}
        
		unsigned int pixel = 0;
        
		pixel |= *p++ << 16L;
		pixel |= *p++ << 8L;
		pixel |= *p++;
		pixel |= *p++ << 24L;
        
		fprintf(f, " 0x%08x,", pixel);
	}
    
	fputs("\n};\n", f);
    
	fclose(f);
    
	puts("Generated linux icon in " OUTPUT_FILE);
}
