• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #include <com.badlogic.gdx.graphics.glutils.ETC1.h>
2 #include <android/log.h>
3 
4 #define APP_LOG "GDX"
5 
6 //@line:196
7 
8 	#include <etc1/etc1_utils.h>
9 	#include <stdlib.h>
Java_com_badlogic_gdx_graphics_glutils_ETC1_getCompressedDataSize(JNIEnv * env,jclass clazz,jint width,jint height)10 	 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_graphics_glutils_ETC1_getCompressedDataSize(JNIEnv* env, jclass clazz, jint width, jint height) {
11 
12 
13 //@line:204
14 
15 		return etc1_get_encoded_data_size(width, height);
16 
17 
18 }
19 
Java_com_badlogic_gdx_graphics_glutils_ETC1_formatHeader(JNIEnv * env,jclass clazz,jobject obj_header,jint offset,jint width,jint height)20 JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_glutils_ETC1_formatHeader(JNIEnv* env, jclass clazz, jobject obj_header, jint offset, jint width, jint height) {
21 	char* header = (char*)(obj_header?env->GetDirectBufferAddress(obj_header):0);
22 
23 
24 //@line:214
25 
26 		etc1_pkm_format_header((etc1_byte*)header + offset, width, height);
27 
28 
29 }
30 
wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_getWidthPKM(JNIEnv * env,jclass clazz,jobject obj_header,jint offset,char * header)31 static inline jint wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_getWidthPKM
32 (JNIEnv* env, jclass clazz, jobject obj_header, jint offset, char* header) {
33 
34 //@line:221
35 
36 		return etc1_pkm_get_width((etc1_byte*)header + offset);
37 
38 }
39 
Java_com_badlogic_gdx_graphics_glutils_ETC1_getWidthPKM(JNIEnv * env,jclass clazz,jobject obj_header,jint offset)40 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_graphics_glutils_ETC1_getWidthPKM(JNIEnv* env, jclass clazz, jobject obj_header, jint offset) {
41 	char* header = (char*)(obj_header?env->GetDirectBufferAddress(obj_header):0);
42 
43 	jint JNI_returnValue = wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_getWidthPKM(env, clazz, obj_header, offset, header);
44 
45 
46 	return JNI_returnValue;
47 }
48 
wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_getHeightPKM(JNIEnv * env,jclass clazz,jobject obj_header,jint offset,char * header)49 static inline jint wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_getHeightPKM
50 (JNIEnv* env, jclass clazz, jobject obj_header, jint offset, char* header) {
51 
52 //@line:228
53 
54 		return etc1_pkm_get_height((etc1_byte*)header + offset);
55 
56 }
57 
Java_com_badlogic_gdx_graphics_glutils_ETC1_getHeightPKM(JNIEnv * env,jclass clazz,jobject obj_header,jint offset)58 JNIEXPORT jint JNICALL Java_com_badlogic_gdx_graphics_glutils_ETC1_getHeightPKM(JNIEnv* env, jclass clazz, jobject obj_header, jint offset) {
59 	char* header = (char*)(obj_header?env->GetDirectBufferAddress(obj_header):0);
60 
61 	jint JNI_returnValue = wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_getHeightPKM(env, clazz, obj_header, offset, header);
62 
63 
64 	return JNI_returnValue;
65 }
66 
wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_isValidPKM(JNIEnv * env,jclass clazz,jobject obj_header,jint offset,char * header)67 static inline jboolean wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_isValidPKM
68 (JNIEnv* env, jclass clazz, jobject obj_header, jint offset, char* header) {
69 
70 //@line:235
71 
72 		return etc1_pkm_is_valid((etc1_byte*)header + offset) != 0?true:false;
73 
74 }
75 
Java_com_badlogic_gdx_graphics_glutils_ETC1_isValidPKM(JNIEnv * env,jclass clazz,jobject obj_header,jint offset)76 JNIEXPORT jboolean JNICALL Java_com_badlogic_gdx_graphics_glutils_ETC1_isValidPKM(JNIEnv* env, jclass clazz, jobject obj_header, jint offset) {
77 	char* header = (char*)(obj_header?env->GetDirectBufferAddress(obj_header):0);
78 
79 	jboolean JNI_returnValue = wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_isValidPKM(env, clazz, obj_header, offset, header);
80 
81 
82 	return JNI_returnValue;
83 }
84 
Java_com_badlogic_gdx_graphics_glutils_ETC1_decodeImage(JNIEnv * env,jclass clazz,jobject obj_compressedData,jint offset,jobject obj_decodedData,jint offsetDec,jint width,jint height,jint pixelSize)85 JNIEXPORT void JNICALL Java_com_badlogic_gdx_graphics_glutils_ETC1_decodeImage(JNIEnv* env, jclass clazz, jobject obj_compressedData, jint offset, jobject obj_decodedData, jint offsetDec, jint width, jint height, jint pixelSize) {
86 	char* compressedData = (char*)(obj_compressedData?env->GetDirectBufferAddress(obj_compressedData):0);
87 	char* decodedData = (char*)(obj_decodedData?env->GetDirectBufferAddress(obj_decodedData):0);
88 
89 
90 //@line:249
91 
92 	// Nothing to decode, or no target
93 	if (compressedData == 0 || decodedData == 0) {
94 		__android_log_print(ANDROID_LOG_VERBOSE, APP_LOG, "Invalid buffers, null pointer.");
95 		return;
96 	}
97 
98 	/// Verify if requested bounds are valid
99 	jlong compressedLength = env->GetDirectBufferCapacity(obj_compressedData);
100 	jlong decodedLength = env->GetDirectBufferCapacity(obj_decodedData);
101 	if (offset < 0 || compressedLength - offset > decodedLength - offsetDec) {
102 		__android_log_print(ANDROID_LOG_VERBOSE,
103 			APP_LOG, "Invalid buffers, would cause heap overflow. %lu > %lu",
104 			compressedLength - offset,
105 			decodedLength - offsetDec);
106 		return;
107 	}
108 
109 	etc1_decode_image((etc1_byte*)compressedData + offset,
110 		(etc1_byte*)decodedData + offsetDec,
111 		width,
112 		height,
113 		pixelSize,
114 		width * pixelSize);
115 }
116 
wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_encodeImage(JNIEnv * env,jclass clazz,jobject obj_imageData,jint offset,jint width,jint height,jint pixelSize,char * imageData)117 static inline jobject wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_encodeImage
118 (JNIEnv* env, jclass clazz, jobject obj_imageData, jint offset, jint width, jint height, jint pixelSize, char* imageData) {
119 
120 //@line:260
121 
122 		int compressedSize = etc1_get_encoded_data_size(width, height);
123 		etc1_byte* compressedData = (etc1_byte*)malloc(compressedSize);
124 		etc1_encode_image((etc1_byte*)imageData + offset, width, height, pixelSize, width * pixelSize, compressedData);
125 		return env->NewDirectByteBuffer(compressedData, compressedSize);
126 
127 }
128 
Java_com_badlogic_gdx_graphics_glutils_ETC1_encodeImage(JNIEnv * env,jclass clazz,jobject obj_imageData,jint offset,jint width,jint height,jint pixelSize)129 JNIEXPORT jobject JNICALL Java_com_badlogic_gdx_graphics_glutils_ETC1_encodeImage(JNIEnv* env, jclass clazz, jobject obj_imageData, jint offset, jint width, jint height, jint pixelSize) {
130 	char* imageData = (char*)(obj_imageData?env->GetDirectBufferAddress(obj_imageData):0);
131 
132 	jobject JNI_returnValue = wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_encodeImage(env, clazz, obj_imageData, offset, width, height, pixelSize, imageData);
133 
134 
135 	return JNI_returnValue;
136 }
137 
wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_encodeImagePKM(JNIEnv * env,jclass clazz,jobject obj_imageData,jint offset,jint width,jint height,jint pixelSize,char * imageData)138 static inline jobject wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_encodeImagePKM
139 (JNIEnv* env, jclass clazz, jobject obj_imageData, jint offset, jint width, jint height, jint pixelSize, char* imageData) {
140 
141 //@line:274
142 
143 		int compressedSize = etc1_get_encoded_data_size(width, height);
144 		etc1_byte* compressed = (etc1_byte*)malloc(compressedSize + ETC_PKM_HEADER_SIZE);
145 		etc1_pkm_format_header(compressed, width, height);
146 		etc1_encode_image((etc1_byte*)imageData + offset, width, height, pixelSize, width * pixelSize, compressed + ETC_PKM_HEADER_SIZE);
147 		return env->NewDirectByteBuffer(compressed, compressedSize + ETC_PKM_HEADER_SIZE);
148 
149 }
150 
Java_com_badlogic_gdx_graphics_glutils_ETC1_encodeImagePKM(JNIEnv * env,jclass clazz,jobject obj_imageData,jint offset,jint width,jint height,jint pixelSize)151 JNIEXPORT jobject JNICALL Java_com_badlogic_gdx_graphics_glutils_ETC1_encodeImagePKM(JNIEnv* env, jclass clazz, jobject obj_imageData, jint offset, jint width, jint height, jint pixelSize) {
152 	char* imageData = (char*)(obj_imageData?env->GetDirectBufferAddress(obj_imageData):0);
153 
154 	jobject JNI_returnValue = wrapped_Java_com_badlogic_gdx_graphics_glutils_ETC1_encodeImagePKM(env, clazz, obj_imageData, offset, width, height, pixelSize, imageData);
155 
156 
157 	return JNI_returnValue;
158 }
159 
160