mitsu98xx: Fix major bugs in output generation

* Correct Endianness when generating Matte plane
 * Don't treat YMC planes as 8bpp
This commit is contained in:
Solomon Peachy 2023-10-09 21:47:32 -04:00
parent 85e29cb80a
commit 751f26fdc0

View file

@ -310,8 +310,8 @@ static int mitsu98xx_fillmatte(struct mitsu9550_printjob *job)
matte->cmd[3] = 0x10;
matte->row_offset = 0;
matte->col_offset = 0;
matte->cols = cpu_to_be16(job->hdr1.cols);
matte->rows = cpu_to_be16(job->hdr1.rows);
matte->cols = cpu_to_be16(job->cols);
matte->rows = cpu_to_be16(job->rows);
job->datalen += sizeof(struct mitsu9550_plane);
ret = mitsu_readlamdata(MITSU_M98xx_LAMINATE_FILE, LAMINATE_STRIDE,
@ -1101,9 +1101,9 @@ static int mitsu9550_main_loop(void *vctx, const void *vjob, int wait_for_return
for (offset = 0, i = 0; i < output.rows ; i++) {
for (j = 0 ; j < output.cols ; j ++, offset += 3) {
yPtr[i*output.cols + j] = convbuf[0 + offset];
mPtr[i*output.cols + j] = convbuf[1 + offset];
cPtr[i*output.cols + j] = convbuf[2 + offset];
((uint16_t*)yPtr)[i*output.cols + j] = ((uint16_t*)convbuf)[0 + offset];
((uint16_t*)mPtr)[i*output.cols + j] = ((uint16_t*)convbuf)[1 + offset];
((uint16_t*)cPtr)[i*output.cols + j] = ((uint16_t*)convbuf)[2 + offset];
}
}
@ -1635,7 +1635,7 @@ static const char *mitsu9550_prefixes[] = {
/* Exported */
const struct dyesub_backend mitsu9550_backend = {
.name = "Mitsubishi CP9xxx family",
.version = "0.69" " (lib " LIBMITSU_VER ")",
.version = "0.70" " (lib " LIBMITSU_VER ")",
.uri_prefixes = mitsu9550_prefixes,
.cmdline_usage = mitsu9550_cmdline,
.cmdline_arg = mitsu9550_cmdline_arg,