drawFrameBuffer method

void drawFrameBuffer(
  1. Buffer sourceBuffer,
  2. int srcX,
  3. int srcY,
  4. int srcWidth,
  5. int srcHeight,
  6. int destX,
  7. int destY,
)

Draw another buffer onto this buffer (compositing).

The source rectangle (srcX, srcY, srcWidth, srcHeight) is copied to (destX, destY) on this buffer. Both buffers must be valid (not yet invalidated by their renderer); zero source values select the native full-extent default. After both lifecycle checks, srcX, srcY, srcWidth, and srcHeight must fit unsigned 32-bit values and destX and destY signed 32-bit values; violations throw a pre-invocation RangeError.

Implementation

void drawFrameBuffer(
  Buffer sourceBuffer,
  int srcX,
  int srcY,
  int srcWidth,
  int srcHeight,
  int destX,
  int destY,
) {
  _checkValid();
  sourceBuffer._checkValid();
  _checkUnsignedAbi(srcX, 0xFFFFFFFF, 'srcX');
  _checkUnsignedAbi(srcY, 0xFFFFFFFF, 'srcY');
  _checkUnsignedAbi(srcWidth, 0xFFFFFFFF, 'srcWidth');
  _checkUnsignedAbi(srcHeight, 0xFFFFFFFF, 'srcHeight');
  _checkSigned32Abi(destX, 'destX');
  _checkSigned32Abi(destY, 'destY');
  _bindings.drawFrameBuffer(
    _ptr,
    destX,
    destY,
    sourceBuffer._ptr,
    srcX,
    srcY,
    srcWidth,
    srcHeight,
  );
}