bitbox icon indicating copy to clipboard operation
bitbox copied to clipboard

move over draw_buffer in relation to LineBuffers

Open lowagner opened this issue 9 years ago • 4 comments

in vga_bitbox.c, didn't we think to do something like this?

uint16_t *display_buffer = LineBuffer1 + 112; // will be sent to display uint16_t *draw_buffer = LineBuffer2 + 112; // will be drawn (bg already drawn)

(112 = (1024 - 800)/2, with 800 being max horizontal resolution, so we get a big chunk on the left (112 pixels) and right (112 as well) that we can draw to without segfaults.)

not sure how to do this for the micro, or if that messes things up.

lowagner avatar Dec 07 '16 15:12 lowagner

it's not that simple in fact, you need the DMA to start at a 4kB boundary in certain circumstances, so LineBuffer1+112 must be aligned at a 4kB boundary

makapuf avatar Dec 07 '16 15:12 makapuf

ok, glad i didn't try to submit a PR with that then :). not sure how it all works down on the lowest level, but will it be possible to do something like this? i'd be happy with even 16 pixels on either side, 32 should be definitely enough -- i don't know if that helps to keep it simple. 112 doesn't have to be a thing...

lowagner avatar Dec 07 '16 18:12 lowagner

See current investigations on how to do it - definitely not simple. http://stackoverflow.com/questions/41122880/align-a-variable-in-memory-with-offset-from-power-of-two-in-memory

makapuf avatar Dec 13 '16 15:12 makapuf

definitely looks tricky! though i'd like 32 bytes (= 16 bitbox pixels) if possible... sorry to be picky...

lowagner avatar Dec 13 '16 18:12 lowagner