Mercurial > hg > dmlib
changeset 924:732787cccca8
Add dimension (w/h) information fields to C64 image format struct.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Wed, 25 Feb 2015 15:23:09 +0200 |
parents | 0f477446448d |
children | 23b14d62bf67 |
files | tools/lib64gfx.c tools/lib64gfx.h |
diffstat | 2 files changed, 50 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/tools/lib64gfx.c Wed Feb 25 15:09:37 2015 +0200 +++ b/tools/lib64gfx.c Wed Feb 25 15:23:09 2015 +0200 @@ -292,7 +292,9 @@ const DMC64ImageFormat dmC64ImageFormats[] = { { - D64_FMT_MC, "d2p", "DrazPaint 2.0 (packed)", 0x5800, -1, + D64_FMT_MC, "d2p", "DrazPaint 2.0 (packed)", 0x5800, 0, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, fmtProbeDrazPaint20Packed, fmtDecodeDrazPaintPacked, NULL, NULL, NULL, 4, @@ -305,7 +307,9 @@ }, { - D64_FMT_MC | D64_FMT_ILACE, "dlp", "DrazLace 1.0 (packed)", 0x5800, -1, + D64_FMT_MC | D64_FMT_ILACE, "dlp", "DrazLace 1.0 (packed)", 0x5800, 0, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, fmtProbeDrazLace10Packed, fmtDecodeDrazPaintPacked, NULL, NULL, NULL, 6, @@ -321,6 +325,8 @@ { D64_FMT_MC, "drp", "DrazPaint (unpacked)", 0x5800, 10051, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, NULL, NULL, NULL, NULL, NULL, 4, @@ -334,6 +340,8 @@ { D64_FMT_MC | D64_FMT_ILACE, "drl", "DrazLace 1.0 (unpacked)", 0x5800, 18242, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, NULL, NULL, NULL, NULL, NULL, 6, @@ -349,6 +357,8 @@ { D64_FMT_MC | D64_FMT_ILACE, "mci", "Truepaint (unpacked)", 0x9c00, 19434, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, NULL, NULL, NULL, NULL, NULL, 6, @@ -365,6 +375,8 @@ { D64_FMT_MC, "kla", "Koala Paint (unpacked)", 0x6000, 10003, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, NULL, NULL, NULL, NULL, NULL, 4, @@ -378,6 +390,8 @@ { D64_FMT_MC, "ocp", "Advanced Art Studio (unpacked)", 0x2000, 10018, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, NULL, NULL, NULL, NULL, NULL, 4, @@ -390,7 +404,9 @@ }, { - D64_FMT_MC, "ami", "Amica Paint (packed)", 0x4000, -1, + D64_FMT_MC, "ami", "Amica Paint (packed)", 0x4000, 0, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, fmtProbeAmicaPaintPacked, fmtDecodeAmicaPaintPacked, NULL, NULL, NULL, 4, @@ -404,6 +420,8 @@ { D64_FMT_MC, "rpm", "Run Paint (unpacked)", 0x6000, 10006, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, NULL, NULL, NULL, NULL, NULL, 4, @@ -417,6 +435,8 @@ { D64_FMT_HIRES, "art", "Art Studio (unpacked)", 0x2000, 9009, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, NULL, NULL, NULL, NULL, NULL, 2, @@ -428,6 +448,8 @@ { D64_FMT_HIRES, "iph", "Interpaint (unpacked)", 0x4000, 9002, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, NULL, NULL, NULL, NULL, NULL, 2, @@ -439,6 +461,8 @@ { D64_FMT_HIRES, "dd", "Doodle (unpacked)", 0x1c00, 9218, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, NULL, NULL, NULL, NULL, NULL, 2, @@ -450,6 +474,8 @@ { D64_FMT_MC | D64_FMT_FLI, "bml", "Blackmail FLI (unpacked)", 0x3b00, 17474, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, NULL, NULL, NULL, NULL, NULL, 11, @@ -473,6 +499,8 @@ { D64_FMT_MC | D64_FMT_FLI, "fli", "FLI Designer (unpacked)", 0x3c00, 17409, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, NULL, NULL, NULL, NULL, NULL, 11, @@ -493,6 +521,8 @@ { D64_FMT_MC, "xx1", "Unknown $2000 format (unpacked)", 0x2000, 10242, + C64_SCR_WIDTH , C64_SCR_HEIGHT, + C64_SCR_CH_WIDTH, C64_SCR_CH_HEIGHT, NULL, NULL, NULL, NULL, NULL, 4, @@ -504,10 +534,17 @@ } }, -#define XX2_SIZE (40 * 10) +#define XX2_WIDTH_CH 40 +#define XX2_HEIGHT_CH 10 + +#define XX2_SIZE (XX2_WIDTH_CH * XX2_HEIGHT_CH) #define XX2_BSIZE (XX2_SIZE * 8) + +#if 0 { D64_FMT_MC, "xx2", "Unknown $2000 format (unpacked)", 0x2000, 4002, + XX2_WIDTH_CH * 4, XX2_HEIGHT_CH * 8, + XX2_WIDTH_CH , XX2_HEIGHT_CH, NULL, NULL, NULL, NULL, NULL, 4, @@ -520,11 +557,12 @@ } }, -/* -#define XX2_SIZE (40 * 10) -#define XX2_BSIZE (XX2_SIZE * 8) +#else + { D64_FMT_MC | D64_FMT_CHAR, "xx2", "Unknown $2000 char format (unpacked)", 0x2000, 4002, + XX2_WIDTH_CH * 4, XX2_HEIGHT_CH * 8, + XX2_WIDTH_CH , XX2_HEIGHT_CH, NULL, NULL, NULL, NULL, NULL, 4, @@ -538,7 +576,7 @@ { DT_COLOR_SET, 4 , 0, DC_D023, NULL, NULL }, } }, -*/ +#endif }; const int ndmC64ImageFormats = sizeof(dmC64ImageFormats) / sizeof(dmC64ImageFormats[0]);
--- a/tools/lib64gfx.h Wed Feb 25 15:09:37 2015 +0200 +++ b/tools/lib64gfx.h Wed Feb 25 15:23:09 2015 +0200 @@ -186,6 +186,10 @@ size_t addr; // Loading address (0 if no loading address) size_t size; // Size, including loading address. Only used in encoding, if even there (0 if no static size) + + int width, height; // Width and height in pixels + int ch_width, ch_height; // Width and height in charblocks + int (*probe)(const Uint8 *buf, const size_t len, const struct _DMC64ImageFormat *fmt); int (*decode)(DMC64Image *img, const Uint8 *buf, const size_t len, const struct _DMC64ImageFormat *fmt); int (*encode)(DMC64Image *img, Uint8 **buf, size_t *len, const struct _DMC64ImageFormat *fmt);