diff options
Diffstat (limited to 'tools/gbagfx/gfx.h')
-rw-r--r-- | tools/gbagfx/gfx.h | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/tools/gbagfx/gfx.h b/tools/gbagfx/gfx.h new file mode 100644 index 000000000..15a3c6a6c --- /dev/null +++ b/tools/gbagfx/gfx.h @@ -0,0 +1,53 @@ +// Copyright (c) 2015 YamaArashi + +#ifndef GFX_H +#define GFX_H + +#include <stdint.h> +#include <stdbool.h> + +struct Color { + unsigned char red; + unsigned char green; + unsigned char blue; +}; + +struct Palette { + struct Color colors[256]; + int numColors; +}; + +struct __attribute__((packed)) Tile { + unsigned short index:10; + unsigned short xflip:1; + unsigned short yflip:1; + unsigned short palno:4; +}; + +struct Tilemap { + struct Tile *data; + int numTiles; +}; + +struct Image { + int width; + int height; + int bitDepth; + unsigned char *pixels; + bool hasPalette; + struct Palette palette; + bool hasTransparency; + struct Tilemap tileMap; + bool hasTilemap; + +}; + +void ReadImage(char *path, int tilesWidth, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors); +void WriteImage(char *path, int numTiles, int bitDepth, int metatileWidth, int metatileHeight, struct Image *image, bool invertColors); +void FreeImage(struct Image *image); +void ReadGbaPalette(char *path, struct Palette *palette); +void WriteGbaPalette(char *path, struct Palette *palette); +void ReadGbaTilemap(char *path, struct Tilemap *tileMap); +void WriteGbaTilemap(char *path, struct Tilemap *tileMap); + +#endif // GFX_H |