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 }
|