< prev index next >

modules/graphics/src/main/native-prism-sw/PiscesSurface.inl

Print this page
rev 9617 : imported patch 8u121.patch


  32 
  33 static INLINE void surface_dispose(Surface* surface);
  34 
  35 static INLINE void surface_setRGB(Surface* dstSurface, jint x, jint y,
  36                                   jint width, jint height, jint* data,
  37                                   jint scanLength);
  38 
  39 
  40 static void setRGB(jint* src, jint srcScanLength, jint* dst, jint dstScanLength,
  41                    jint width, jint height);
  42 
  43 
  44 static INLINE void
  45 surface_dispose(Surface* surface) {
  46     my_free(surface);
  47 }
  48 
  49 static INLINE void
  50 surface_setRGB(Surface* dstSurface, jint x, jint y,
  51                jint width, jint height, jint* data, jint scanLength) {

  52     setRGB((jint*)dstSurface->data + y * dstSurface->width + x, 
  53            dstSurface->width, data, scanLength, width, height);
  54 }
  55 
  56 
  57 static void
  58 setRGB(jint* dst, jint dstScanLength, jint* src, jint srcScanLength,
  59        jint width, jint height) {
  60     jint srcScanRest = srcScanLength - width;
  61     jint dstScanRest = dstScanLength - width;
  62 
  63     for (; height > 0; --height) {
  64         jint w2 = width;
  65         for (; w2 > 0; --w2) {
  66             *dst++ = *src++;
  67         }
  68         src += srcScanRest;
  69         dst += dstScanRest;
  70     }
  71 }


  32 
  33 static INLINE void surface_dispose(Surface* surface);
  34 
  35 static INLINE void surface_setRGB(Surface* dstSurface, jint x, jint y,
  36                                   jint width, jint height, jint* data,
  37                                   jint scanLength);
  38 
  39 
  40 static void setRGB(jint* src, jint srcScanLength, jint* dst, jint dstScanLength,
  41                    jint width, jint height);
  42 
  43 
  44 static INLINE void
  45 surface_dispose(Surface* surface) {
  46     my_free(surface);
  47 }
  48 
  49 static INLINE void
  50 surface_setRGB(Surface* dstSurface, jint x, jint y,
  51                jint width, jint height, jint* data, jint scanLength) {
  52     if (dstSurface->data == NULL) return;
  53     setRGB((jint*)dstSurface->data + y * dstSurface->width + x, 
  54            dstSurface->width, data, scanLength, width, height);
  55 }
  56 
  57 
  58 static void
  59 setRGB(jint* dst, jint dstScanLength, jint* src, jint srcScanLength,
  60        jint width, jint height) {
  61     jint srcScanRest = srcScanLength - width;
  62     jint dstScanRest = dstScanLength - width;
  63 
  64     for (; height > 0; --height) {
  65         jint w2 = width;
  66         for (; w2 > 0; --w2) {
  67             *dst++ = *src++;
  68         }
  69         src += srcScanRest;
  70         dst += dstScanRest;
  71     }
  72 }
< prev index next >