summaryrefslogtreecommitdiff
path: root/platform/android
diff options
context:
space:
mode:
authorRobin Watts <robin.watts@artifex.com>2015-08-21 19:00:04 +0100
committerRobin Watts <robin.watts@artifex.com>2015-08-21 19:10:02 +0100
commit7673c4d16cf70eaabc8f495540f7dc78f0993cc1 (patch)
tree1b5eeb956d4422ee66b4638334e39cae89f25017 /platform/android
parent79358b9f05196807b427734a9b209e70e270a61f (diff)
downloadmupdf-7673c4d16cf70eaabc8f495540f7dc78f0993cc1.tar.xz
GProof: Return Android style RGB color values from the JNI.
Android wants colors to be BGRA, not RGBA, so accomodate this.
Diffstat (limited to 'platform/android')
-rw-r--r--platform/android/jni/mupdf.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/platform/android/jni/mupdf.c b/platform/android/jni/mupdf.c
index 1af19433..96b9162d 100644
--- a/platform/android/jni/mupdf.c
+++ b/platform/android/jni/mupdf.c
@@ -2834,7 +2834,8 @@ JNI_FN(MuPDFCore_getSepInternal)(JNIEnv *env, jobject thiz, int page, int sep)
globals *glo = get_globals(env, thiz);
fz_context *ctx = glo->ctx;
const char *name;
- unsigned int rgb;
+ char rgba[4];
+ unsigned int bgra;
unsigned int cmyk;
jobject jname;
jclass sepClass;
@@ -2849,7 +2850,9 @@ JNI_FN(MuPDFCore_getSepInternal)(JNIEnv *env, jobject thiz, int page, int sep)
if (i == NUM_CACHE)
return NULL;
- name = fz_get_separation_on_page(ctx, glo->pages[i].page, sep, &rgb, &cmyk);
+ /* MuPDF returns RGBA as bytes. Android wants a packed BGRA int. */
+ name = fz_get_separation_on_page(ctx, glo->pages[i].page, sep, &rgba[0], &cmyk);
+ bgra = (rgba[0] << 16) | (rgba[1]<<8) | rgba[2] | (rgba[3]<<24);
jname = name ? (*env)->NewStringUTF(env, name) : NULL;
sepClass = (*env)->FindClass(env, PACKAGENAME "/Separation");
@@ -2860,5 +2863,5 @@ JNI_FN(MuPDFCore_getSepInternal)(JNIEnv *env, jobject thiz, int page, int sep)
if (ctor == NULL)
return NULL;
- return (*env)->NewObject(env, sepClass, ctor, jname, rgb, cmyk);
+ return (*env)->NewObject(env, sepClass, ctor, jname, bgra, cmyk);
}