cammy/include/cammy/photo.h

59 lines
1.5 KiB
C

#ifndef _CAMMY_PHOTO_H
#define _CAMMY_PHOTO_H
#include <stdint.h>
#include <cammy/tile.h>
#define CAMMY_PHOTO_TILES_WIDTH 16
#define CAMMY_PHOTO_TILES_HEIGHT 14
#define CAMMY_PHOTO_SIZE \
(CAMMY_TILE_SIZE * CAMMY_PHOTO_TILES_WIDTH * CAMMY_PHOTO_TILES_HEIGHT)
#define CAMMY_PHOTO_WIDTH \
(CAMMY_TILE_WIDTH * CAMMY_PHOTO_TILES_WIDTH)
#define CAMMY_PHOTO_HEIGHT \
(CAMMY_TILE_HEIGHT * CAMMY_PHOTO_TILES_HEIGHT)
#define CAMMY_PHOTO_THUMB_TILES_WIDTH 4
#define CAMMY_PHOTO_THUMB_TILES_HEIGHT 4
#define CAMMY_PHOTO_INFO_SIZE 256
#pragma pack(1)
#pragma pack(push)
typedef struct _cammy_photo {
cammy_tile tiles[CAMMY_PHOTO_TILES_HEIGHT]
[CAMMY_PHOTO_TILES_WIDTH];
cammy_tile thumb[CAMMY_PHOTO_THUMB_TILES_HEIGHT]
[CAMMY_PHOTO_THUMB_TILES_WIDTH];
uint8_t info[CAMMY_PHOTO_INFO_SIZE];
} cammy_photo;
#pragma pack(pop)
void cammy_photo_export(cammy_photo *src,
uint8_t *dest,
int depth,
cammy_tile_palette *palette);
void cammy_photo_merge(cammy_photo *srcr,
cammy_photo *srcg,
cammy_photo *srcb,
uint8_t *dest,
int depth);
void cammy_photo_import(cammy_photo *dest, uint8_t *src, int depth);
void cammy_photo_import_rgb(cammy_photo *destr,
cammy_photo *destg,
cammy_photo *destb,
uint8_t *src,
int depth);
#endif /* _CAMMY_PHOTO_H */