7#include <QtCore/QJniEnvironment>
10#include <android/log.h>
15#define LOG_TAG "extractSyleInfo"
16#define LOGE(...) __android_log_print(ANDROID_LOG_ERROR,LOG_TAG,__VA_ARGS__)
36 char* patch = (
char*) inData;
37 if (inData != outData) {
38 memmove(&outData->wasDeserialized, patch, 4);
39 memmove(&outData->paddingLeft, patch + 12, 4);
41 outData->wasDeserialized =
true;
42 char*
data = (
char*)outData;
43 data +=
sizeof(Res_png_9patch);
44 outData->xDivs = (int32_t*)
data;
45 data += outData->numXDivs *
sizeof(int32_t);
46 outData->yDivs = (int32_t*)
data;
47 data += outData->numYDivs *
sizeof(int32_t);
48 outData->colors = (uint32_t*)
data;
51Res_png_9patch* Res_png_9patch::deserialize(
const void* inData)
53 if (
sizeof(
void*) !=
sizeof(int32_t)) {
54 LOGE(
"Cannot deserialize on non 32-bit system\n");
58 return (Res_png_9patch*) inData;
61extern "C" JNIEXPORT jintArray JNICALL
64 Res_png_9patch20* chunk =
reinterpret_cast<Res_png_9patch20*
>(
addr);
65 Res_png_9patch20::deserialize(chunk);
68 size_t size = 3+chunk->numXDivs+chunk->numYDivs+chunk->numColors;
73 jint *
data = (jint*)malloc(
sizeof(jint)*
size);
79 int32_t* xDivs = chunk->getXDivs();
80 int32_t* yDivs = chunk->getYDivs();
81 uint32_t*
colors = chunk->getColors();
83 for (
int x = 0;
x <chunk->numXDivs;
x ++)
85 for (
int y = 0;
y <chunk->numYDivs;
y ++)
87 for (
int c = 0;
c <chunk->numColors;
c ++)
95 patch->xDivsOffset =
sizeof(Res_png_9patch20);
96 patch->yDivsOffset = patch->xDivsOffset + (patch->numXDivs *
sizeof(int32_t));
97 patch->colorsOffset = patch->yDivsOffset + (patch->numYDivs *
sizeof(int32_t));
100Res_png_9patch20* Res_png_9patch20::deserialize(
void* inData)
102 Res_png_9patch20* patch =
reinterpret_cast<Res_png_9patch20*
>(inData);
103 patch->wasDeserialized =
true;
GLint GLint GLint GLint GLint x
[0]
GLenum GLuint GLintptr GLsizeiptr size
[1]
GLint GLsizei GLsizei GLenum GLenum GLsizei void * data
static QT_BEGIN_NAMESPACE const QRgb colors[][14]