Mercurial > hg > dmlib
comparison tools/gfxconv.c @ 1490:665a0b917d22
Begin restructuring how C64 bitmaps are converted.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Fri, 11 May 2018 05:25:46 +0300 |
parents | e967e8e3b8c3 |
children | d987a4933e1c |
comparison
equal
deleted
inserted
replaced
1489:71e847ea9d22 | 1490:665a0b917d22 |
---|---|
1024 dmFree(used); | 1024 dmFree(used); |
1025 return DMERR_OK; | 1025 return DMERR_OK; |
1026 } | 1026 } |
1027 | 1027 |
1028 | 1028 |
1029 int dmWriteBitmap(const char *filename, const DMC64Image *image) | 1029 int dmConvertC64Bitmap(DMC64Image **pdst, const DMC64Image *src, const DMC64ImageFormat *fmt) |
1030 { | |
1031 if (pdst == NULL || fmt == NULL || src == NULL) | |
1032 return DMERR_NULLPTR; | |
1033 return DMERR_OK; | |
1034 } | |
1035 | |
1036 | |
1037 int dmWriteBitmap(const char *filename, const DMC64Image *image, const DMC64ImageFormat *fmt) | |
1030 { | 1038 { |
1031 int res = DMERR_OK; | 1039 int res = DMERR_OK; |
1032 const DMC64ImageFormat *fmt = &dmC64ImageFormats[image->type]; | |
1033 DMGrowBuf buf; | 1040 DMGrowBuf buf; |
1034 | 1041 |
1035 // Encode to target format | 1042 // Encode to target format |
1036 dmMsg(1, "Encoding C64 bitmap data to format '%s'\n", fmt->name); | 1043 dmMsg(1, "Encoding C64 bitmap data to format '%s'\n", fmt->name); |
1037 if ((res = dmC64EncodeBMP(&buf, image, fmt)) != DMERR_OK) | 1044 if ((res = dmC64EncodeBMP(&buf, image, fmt)) != DMERR_OK) |
1551 | 1558 |
1552 int main(int argc, char *argv[]) | 1559 int main(int argc, char *argv[]) |
1553 { | 1560 { |
1554 FILE *inFile = NULL; | 1561 FILE *inFile = NULL; |
1555 const DMC64ImageFormat *inC64Fmt = NULL; | 1562 const DMC64ImageFormat *inC64Fmt = NULL; |
1556 DMC64Image *inC64Image = NULL; | 1563 DMC64Image *inC64Image = NULL, *outC64Image = NULL; |
1557 Uint8 *dataBuf = NULL, *dataBufOrig = NULL; | 1564 Uint8 *dataBuf = NULL, *dataBufOrig = NULL; |
1558 size_t dataSize, dataSizeOrig; | 1565 size_t dataSize, dataSizeOrig; |
1559 int i; | 1566 int i; |
1560 | 1567 |
1561 // Default colors | 1568 // Default colors |
1725 dmSetDefaultC64Palette(outImage); | 1732 dmSetDefaultC64Palette(outImage); |
1726 res = dmWriteImage(optOutFilename, outImage, &optSpec, optOutSubFormat, TRUE); | 1733 res = dmWriteImage(optOutFilename, outImage, &optSpec, optOutSubFormat, TRUE); |
1727 break; | 1734 break; |
1728 | 1735 |
1729 case FFMT_BITMAP: | 1736 case FFMT_BITMAP: |
1730 res = dmWriteBitmap(optOutFilename, inC64Image); | 1737 if ((res = dmConvertC64Bitmap(&outC64Image, inC64Image, &dmC64ImageFormats[optOutSubFormat])) != DMERR_OK) |
1738 { | |
1739 dmErrorMsg("Error in bitmap format conversion.\n"); | |
1740 goto error; | |
1741 } | |
1742 res = dmWriteBitmap(optOutFilename, outC64Image, &dmC64ImageFormats[optOutSubFormat]); | |
1731 break; | 1743 break; |
1732 | 1744 |
1733 case FFMT_CHAR: | 1745 case FFMT_CHAR: |
1734 case FFMT_SPRITE: | 1746 case FFMT_SPRITE: |
1735 res = dmC64ConvertBMP2Image(&outImage, inC64Image, inC64Fmt); | 1747 res = dmC64ConvertBMP2Image(&outImage, inC64Image, inC64Fmt); |
1805 if (inFile != NULL) | 1817 if (inFile != NULL) |
1806 fclose(inFile); | 1818 fclose(inFile); |
1807 | 1819 |
1808 dmFree(dataBufOrig); | 1820 dmFree(dataBufOrig); |
1809 dmC64ImageFree(inC64Image); | 1821 dmC64ImageFree(inC64Image); |
1822 dmC64ImageFree(outC64Image); | |
1810 | 1823 |
1811 return 0; | 1824 return 0; |
1812 } | 1825 } |