MCPcopy Create free account
hub / github.com/CE-Programming/CEmu / panel_write_pixel_row

Function panel_write_pixel_row

core/panel.c:695–714  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

693static void panel_write_pixel_row_oob(panel_mem_ptr_t* memPtr, uint32_t bgr666);
694
695static void panel_write_pixel_row(panel_mem_ptr_t *memPtr, uint32_t bgr666) {
696 uint16_t row = memPtr->xAddr;
697 if (likely(row < PANEL_NUM_ROWS)) {
698 if (unlikely(row == panel.srcRow)) {
699 panel_buffer_catchup(memPtr->yAddr);
700 }
701 panel_write_pixel(&panel.windowBasePtr[row * PANEL_NUM_COLS], bgr666);
702 }
703 if (likely(row != panel.windowEnd.xAddr)) {
704 memPtr->xAddr = (row + panel.xDir) & PANEL_ADDR_MASK;
705 } else if (likely(panel_next_y_addr(memPtr))) {
706 uint8_t col = memPtr->yAddr;
707 if (likely(col < PANEL_NUM_COLS)) {
708 panel.windowBasePtr = &panel.frame[0][col];
709 } else {
710 panel.write_pixel = panel_write_pixel_row_oob;
711 }
712 memPtr->xAddr = panel.windowStart.xAddr;
713 }
714}
715
716static void panel_write_pixel_row_oob(panel_mem_ptr_t *memPtr, uint32_t bgr666) {
717 (void)bgr666;

Callers

nothing calls this directly

Calls 3

panel_buffer_catchupFunction · 0.85
panel_write_pixelFunction · 0.85
panel_next_y_addrFunction · 0.85

Tested by

no test coverage detected