此类在Android下定义:
public abstract class EGLObjectHandle {
private final long mHandle;
protected EGLObjectHandle(long handle) {
mHandle = handle;
}
public long getNativeHandle() {
return mHandle;
}
}
还有
public class EGLContext extends EGLObjectHandle {
private EGLContext(long handle) {
super(handle);
}
}
现在我的问题是我想用自己的手柄创建一个 EGLContext。该怎么做?在使用下面的功能之前,它在 PIE
上不再起作用 private android.opengl.EGLContext createSharedEGLContextObj(long handle) throws ClassNotFoundException, InstantiationException, IllegalAccessException, NoSuchMethodException, InvocationTargetException {
Class<?> classType =Class.forName("android.opengl.EGLContext");
Class<?>[] types = new Class[] { long.class };
Constructor constructor=classType.getDeclaredConstructor(types);
constructor.setAccessible(true);
Object object=constructor.newInstance(handle);
return (android.opengl.EGLContext) object;
}
我需要一个EGLContext
,因为我需要将其传递给需要EGLContext参数IE:createEgl14( android.opengl.EGLContext sharedContext)
答案 0 :(得分:2)
您几乎不能。根据{{3}},他们将JNI和反射限制为仅SDK接口。
我认为您的最终选择是Android Restrictions,在那里他们会将构造函数的可见性更改为公开。