forked from panda3d/panda3d
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPandaActivity.java
More file actions
120 lines (107 loc) · 3.88 KB
/
PandaActivity.java
File metadata and controls
120 lines (107 loc) · 3.88 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
/**
* PANDA 3D SOFTWARE
* Copyright (c) Carnegie Mellon University. All rights reserved.
*
* All use of this software is subject to the terms of the revised BSD
* license. You should have received a copy of this license along
* with this source code in a file named "LICENSE."
*
* @file PandaActivity.java
* @author rdb
* @date 2013-01-22
*/
package org.panda3d.android;
import android.app.NativeActivity;
import android.content.Intent;
import android.net.Uri;
import android.widget.Toast;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import org.panda3d.android.NativeIStream;
import org.panda3d.android.NativeOStream;
/**
* The entry point for a Panda-based activity. Loads the Panda libraries and
* also provides some utility functions.
*/
public class PandaActivity extends NativeActivity {
private static final Bitmap.Config sConfigs[] = {
null,
Bitmap.Config.ALPHA_8,
null,
Bitmap.Config.RGB_565,
Bitmap.Config.ARGB_4444,
Bitmap.Config.ARGB_8888,
null, //Bitmap.Config.RGBA_F16,
null, //Bitmap.Config.HARDWARE,
};
private static final Bitmap.CompressFormat sFormats[] = {
Bitmap.CompressFormat.JPEG,
Bitmap.CompressFormat.PNG,
Bitmap.CompressFormat.WEBP,
};
protected static BitmapFactory.Options readBitmapSize(long istreamPtr) {
BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
options.inScaled = false;
NativeIStream stream = new NativeIStream(istreamPtr);
BitmapFactory.decodeStream(stream, null, options);
return options;
}
protected static Bitmap readBitmap(long istreamPtr, int sampleSize) {
BitmapFactory.Options options = new BitmapFactory.Options();
// options.inPreferredConfig = Bitmap.Config.RGBA_8888;
options.inScaled = false;
options.inSampleSize = sampleSize;
NativeIStream stream = new NativeIStream(istreamPtr);
return BitmapFactory.decodeStream(stream, null, options);
}
protected static Bitmap createBitmap(int width, int height, int config, boolean hasAlpha) {
return Bitmap.createBitmap(width, height, sConfigs[config]);
}
protected static boolean compressBitmap(Bitmap bitmap, int format, int quality, long ostreamPtr) {
NativeOStream stream = new NativeOStream(ostreamPtr);
return bitmap.compress(sFormats[format], quality, stream);
}
protected static String getCurrentThreadName() {
return Thread.currentThread().getName();
}
public String getIntentDataPath() {
Intent intent = getIntent();
Uri data = intent.getData();
if (data == null) {
return null;
}
String path = data.getPath();
if (path.startsWith("//")) {
path = path.substring(1);
}
return path;
}
public String getIntentOutputUri() {
Intent intent = getIntent();
return intent.getStringExtra("org.panda3d.OUTPUT_URI");
}
public String getCacheDirString() {
return getCacheDir().toString();
}
public void showToast(final String text, final int duration) {
final PandaActivity activity = this;
runOnUiThread(new Runnable() {
public void run() {
Toast toast = Toast.makeText(activity, text, duration);
toast.show();
}
});
}
static {
//System.loadLibrary("gnustl_shared");
//System.loadLibrary("p3dtool");
//System.loadLibrary("p3dtoolconfig");
//System.loadLibrary("pandaexpress");
//System.loadLibrary("panda");
//System.loadLibrary("p3android");
//System.loadLibrary("p3framework");
System.loadLibrary("pandaegg");
System.loadLibrary("pandagles");
}
}