Mercurial > repos > blastem
comparison vdp.c @ 1875:3457d338ae25
Small optimization to render_map in VDP code
author | Michael Pavone <pavone@retrodev.com> |
---|---|
date | Mon, 19 Aug 2019 19:06:22 -0700 |
parents | cae2b55d683f |
children | 9486236f28ac |
comparison
equal
deleted
inserted
replaced
1874:cae2b55d683f | 1875:3457d338ae25 |
---|---|
1195 } else { | 1195 } else { |
1196 address += 4 * context->v_offset; | 1196 address += 4 * context->v_offset; |
1197 } | 1197 } |
1198 uint8_t pal_priority = (col >> 9) & 0x70; | 1198 uint8_t pal_priority = (col >> 9) & 0x70; |
1199 uint32_t bits = *((uint32_t *)(&context->vdpmem[address])); | 1199 uint32_t bits = *((uint32_t *)(&context->vdpmem[address])); |
1200 tmp_buf += offset; | |
1200 if (col & MAP_BIT_H_FLIP) { | 1201 if (col & MAP_BIT_H_FLIP) { |
1201 uint32_t shift = 28; | 1202 uint32_t shift = 28; |
1202 for (int i = 0; i < 4; i++) | 1203 for (int i = 0; i < 4; i++) |
1203 { | 1204 { |
1204 uint8_t right = pal_priority | ((bits >> shift) & 0xF); | 1205 uint8_t right = pal_priority | ((bits >> shift) & 0xF); |
1205 shift -= 4; | 1206 shift -= 4; |
1206 tmp_buf[offset++] = pal_priority | ((bits >> shift) & 0xF); | 1207 *(tmp_buf++) = pal_priority | ((bits >> shift) & 0xF); |
1207 shift -= 4; | 1208 shift -= 4; |
1208 offset &= SCROLL_BUFFER_MASK; | 1209 *(tmp_buf++) = right; |
1209 tmp_buf[offset++] = right; | |
1210 offset &= SCROLL_BUFFER_MASK; | |
1211 } | 1210 } |
1212 } else { | 1211 } else { |
1213 for (int i = 0; i < 4; i++) | 1212 for (int i = 0; i < 4; i++) |
1214 { | 1213 { |
1215 uint8_t right = pal_priority | (bits & 0xF); | 1214 uint8_t right = pal_priority | (bits & 0xF); |
1216 bits >>= 4; | 1215 bits >>= 4; |
1217 tmp_buf[offset++] = pal_priority | (bits & 0xF); | 1216 *(tmp_buf++) = pal_priority | (bits & 0xF); |
1218 offset &= SCROLL_BUFFER_MASK; | |
1219 bits >>= 4; | 1217 bits >>= 4; |
1220 tmp_buf[offset++] = right; | 1218 *(tmp_buf++) = right; |
1221 offset &= SCROLL_BUFFER_MASK; | |
1222 } | 1219 } |
1223 } | 1220 } |
1224 } | 1221 } |
1225 | 1222 |
1226 static void render_map_1(vdp_context * context) | 1223 static void render_map_1(vdp_context * context) |