Logo Search packages:      
Sourcecode: scummvm version File versions  Download package

blit.cpp

#include "native.h"
#include "endianutils.h"

#define MAIN_TYPE BlitType
#include "macros.h"

#define memcpy MemMove

UInt32 Display_blit(void *userData68KP) {
// import variables
      SETPTR      (uint8 *,         dstBuf            )
      SETPTR      (const uint8 *,   srcBuf            )
      SET16 (uint16,          dstPitch    )
      SET16 (uint16,          srcPitch    )
      SET16 (uint16,    w           )
      SET16 (uint16,    h           )
      SET8  (bool,            xflip )
      SET8  (bool,            masked      )
// end of import

      if (!masked) { // Unmasked always unflipped
            while (h--) {
                  memcpy(dstBuf, srcBuf, w);
                  srcBuf += srcPitch;
                  dstBuf += dstPitch;
            }
      } else if (!xflip) { // Masked bitmap unflipped
            while (h--) {
                  for(int i = 0; i < w; ++i) {
                        uint8 b = *(srcBuf + i);
                        if(b != 0) {
                              *(dstBuf + i) = b;
                        }
                  }
                  srcBuf += srcPitch;
                  dstBuf += dstPitch;
            }
      } else { // Masked bitmap flipped
            while (h--) {
                  for(int i = 0; i < w; ++i) {
                        uint8 b = *(srcBuf + i);
                        if(b != 0) {
                              *(dstBuf - i) = b;
                        }
                  }
                  srcBuf += srcPitch;
                  dstBuf += dstPitch;
            }
      }

      return 0;
}

Generated by  Doxygen 1.6.0   Back to index