Copy pixel data from one buffer to another.


#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.




Function Type: Delayed Execution

This function requests pixels from one buffer be copied to another. The operation is not processed until a flushing execution API function is called, or your 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 command was queued, or -1 if an error occurred (errno is set; refer to /usr/include/errno.h for more details).