Copy pixel data from one buffer to another Function Type: Delayed Execution


#include <screen/screen.h>
int screen_blit(screen_context_t ctx, screen_buffer_t dst, screen_buffer_t src, const int *attribs)



A connection to screen


The buffer which data will be copied to.


The buffer which the pixels will be copied from.


A list that contains the attributes that define the blit. This list must consist of a series of token-value pairs terminated with a SCREEN_BLIT_END token. The tokens used in this list must be of type Screen blit types.




This function requests pixels from one buffer be copied to another. The operation is guaranteed not to be submitted until a flush is called, or until the application posts changes to one of the context's windows.

The attribs argument is allowed to be NULL or empty (i.e. contains a single element that is set to SCREEN_BLIT_END). If attribs is empty, then the following defaults will be applied:
  • the source rectangle's vertical and horizontal positions are 0
  • the destination rectangle's vertical and horizontal positions are 0
  • the source rectangle includes the entire source buffer
  • the destination buffer includes the entire destination buffer
  • the transparency is SCREEN_TRANSPARENCY_NONE
  • the global alpha value is 255 (or opaque)
  • the scale quality is SCREEN_QUALITY_NORMAL.


0 if the blit operation was queued, or -1 if an error occurred (errno is set).