无法在Monodroid中使用GL11ExtensionPack

时间:2014-04-09 15:12:50

标签: opengl-es xamarin.android glsurfaceview

我使用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,我不希望在这里适用。

1 个答案:

答案 0 :(得分:0)

根据Atsushi Eno对Xamarin Bugzilla的回复,解决方案是使用JavaCast<T>,如下所示:

IGL11ExtensionPack extpack = gl.JavaCast<IGL11ExtensionPack>();