Source Code (Use browser search to find items of interest.)

Class Index

kscd'BitmapPut (./kdemultimedia/kscd/kscdmagic/bitmap.h:32)

struct BitmapPut {

static void go(
  SrcType *src, int srcWidth, int srcHeight, 
  DestType *dest, int destWidth, int destHeight,
  int srcX,int srcY,int destX, int destY, int width,int height) {

  if (srcX < 0) {
    destX -= srcX;
    width += srcX;
    srcX   = 0;
  }
  if (srcY < 0) {
    destY -= srcY;
    height+= srcY;
    srcY   = 0;
  }
  if (destX < 0) {
    srcX  -= destX;
    width += destX;
    destX  = 0; 
  }
  if (destY < 0) {
    srcY  -= destY;
    height+= destY;
    destY  = 0;
  }

  if (srcX+width > srcWidth) {
    width = srcWidth - srcX;
  }
  if (srcY+height > srcHeight) {
    height = srcHeight - srcY;
  }
  if (destX+width > destWidth) {
    width = destWidth - destX; 
  }
  if (destY+height > destHeight) {
    height = destHeight - destY;
  }

  if (width <= 0 || height <= 0) return;

  int srcSkip = srcWidth - width, destSkip = destWidth - width;
  int i;
  src  += srcX  + srcY  * srcWidth;
  dest += destX + destY * destWidth;

  for(;height--;src+=srcSkip,dest+=destSkip)
    for(i=width;i--;src++,dest++)
      *dest = transfer(*src,*dest);
}};

kscd'BitmapPut::go() (./kdemultimedia/kscd/kscdmagic/bitmap.h:34)

static void go(
  SrcType *src, int srcWidth, int srcHeight, 
  DestType *dest, int destWidth, int destHeight,
  int srcX,int srcY,int destX, int destY, int width,int height) {

  if (srcX < 0) {
    destX -= srcX;
    width += srcX;
    srcX   = 0;
  }
  if (srcY < 0) {
    destY -= srcY;
    height+= srcY;
    srcY   = 0;
  }
  if (destX < 0) {
    srcX  -= destX;
    width += destX;
    destX  = 0; 
  }
  if (destY < 0) {
    srcY  -= destY;
    height+= destY;
    destY  = 0;
  }

  if (srcX+width > srcWidth) {
    width = srcWidth - srcX;
  }
  if (srcY+height > srcHeight) {
    height = srcHeight - srcY;
  }
  if (destX+width > destWidth) {
    width = destWidth - destX; 
  }
  if (destY+height > destHeight) {
    height = destHeight - destY;
  }

  if (width <= 0 || height <= 0) return;

  int srcSkip = srcWidth - width, destSkip = destWidth - width;
  int i;
  src  += srcX  + srcY  * srcWidth;
  dest += destX + destY * destWidth;

  for(;height--;src+=srcSkip,dest+=destSkip)
    for(i=width;i--;src++,dest++)
      *dest = transfer(*src,*dest);
}};