我使用GLSurfaceView并且需要使用IGL11ExtensionPack中的一些方法(例如,GlGenRenderbuffersOES())。在我见过的原生Android示例中,这可以通过将框架提供的GL10对象转换为Gl11ExtensionPack来完成。如本例中的Vogella:
public void onDrawFrame(GL10 gl) {
if (mContextSupportsFrameBufferObject) {
GL11ExtensionPack gl11ep = (GL11ExtensionPack) gl;
...
gl11ep.glBindFramebufferOES(GL11ExtensionPack.GL_FRAMEBUFFER_OES, mFramebuffer);
...
}
在Monodroid中,当我尝试进行演员表时,我获得了一个类强制转换
public void OnSurfaceCreated(IGL10 gl, EGLConfig config)
{
IGL11ExtensionPack extpack = (IGL11ExtensionPack)gl;
...
}
是否有其他人在Monodroid中成功使用GLSurfacePack和GL11ExtensionPack?
作为旁注,有一个很久以来已经解决的Android issue,我不希望在这里适用。
答案 0 :(得分:0)
根据Atsushi Eno对Xamarin Bugzilla的回复,解决方案是使用JavaCast<T>
,如下所示:
IGL11ExtensionPack extpack = gl.JavaCast<IGL11ExtensionPack>();