comparison tools/gfxconv.c @ 1537:776aa43b2c57

Tiny improvement in MC->FLI upconversion.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 12 May 2018 04:46:08 +0300
parents 74febc66d90d
children 416d7b3ba3b2
comparison
equal deleted inserted replaced
1536:064fc2e3ee64 1537:776aa43b2c57
1049 { 1049 {
1050 // Try to do some simple fixups 1050 // Try to do some simple fixups
1051 if ((dst->type & D64_FMT_FLI) && (src->type & D64_FMT_FLI) == 0) 1051 if ((dst->type & D64_FMT_FLI) && (src->type & D64_FMT_FLI) == 0)
1052 { 1052 {
1053 dmMsg(1, "Upconverting multicolor to FLI.\n"); 1053 dmMsg(1, "Upconverting multicolor to FLI.\n");
1054 for (int i = 0; i < src->nbanks; i++) 1054 for (int i = 0; i < dst->nbanks; i++)
1055 { 1055 {
1056 memcpy(dst->color[i], src->color[0], dst->screenSize); 1056 memcpy(dst->color[i], src->color[0], dst->screenSize);
1057 memcpy(dst->screen[i], src->screen[0], dst->screenSize); 1057 memcpy(dst->screen[i], src->screen[0], dst->screenSize);
1058 } 1058 memcpy(dst->bitmap[i], src->bitmap[0], dst->bitmapSize);
1059 1059 memcpy(dst->charmem[i], src->charmem[0], dst->charmemSize);
1060 for (int i = 0; i < dst->nbanks; i++) 1060 }
1061 { 1061
1062 memcpy(dst->bitmap[i], src->bitmap[i], dst->bitmapSize); 1062 for (int i = 0; i < D64_MAX_ENCDEC_OPS; i++)
1063 memcpy(dst->charmem[i], src->charmem[i], dst->charmemSize); 1063 {
1064 const DMC64EncDecOp *op = &fmt->encdecOps[i];
1065 size_t size;
1066
1067 // Check for last operator
1068 if (op->type == DT_LAST)
1069 break;
1070
1071 // Check size
1072 if (!dmC64GetOpSize(op, fmt, &size))
1073 return DMERR_INVALID_DATA;
1074
1075 // Perform operation
1076 switch (op->type)
1077 {
1078 case DT_EXTRA_DATA:
1079 dst->extraData[op->bank] = dmMalloc0(size);
1080 dst->extraDataSizes[op->bank] = size;
1081 break;
1082 }
1064 } 1083 }
1065 } 1084 }
1066 } 1085 }
1067 1086
1068 return DMERR_OK; 1087 return DMERR_OK;