[common] framebuffer: allow custom framebuffer write implementations

This is helpful for only copying damaged areas.
This commit is contained in:
Quantum 2021-07-11 20:09:46 -04:00 committed by Geoffrey McRae
parent 9ce4990793
commit ef2da1902e
2 changed files with 22 additions and 0 deletions

View File

@ -61,4 +61,16 @@ void framebuffer_prepare(FrameBuffer * frame);
*/
bool framebuffer_write(FrameBuffer * frame, const void * src, size_t size);
/**
* Gets the underlying data buffer of the framebuffer.
* For custom write routines only.
*/
uint8_t * framebuffer_get_data(FrameBuffer * frame);
/**
* Sets the write pointer of the framebuffer.
* For custom write routines only.
*/
void framebuffer_set_write_ptr(FrameBuffer * frame, size_t size);
#endif

View File

@ -213,3 +213,13 @@ bool framebuffer_write(FrameBuffer * frame, const void * restrict src, size_t si
return true;
}
uint8_t * framebuffer_get_data(FrameBuffer * frame)
{
return frame->data;
}
void framebuffer_set_write_ptr(FrameBuffer * frame, size_t size)
{
atomic_store_explicit(&frame->wp, size, memory_order_release);
}