小编Jse*_*rra的帖子

在Android ndk上的OpenGLES 1.1中使用GLSurfaceView模式的FrameBuffers

在Android NDK中,是否可以使用典型的Java端GLSurfaceView模式(从GLSurfaceView.Renderer onDrawFrame,onSurfaceCreated等覆盖方法)使用OpenGL ES 1.1,同时在C++端使用帧,颜色和深度缓冲区,以及VBO?

我正在尝试使用它创建它们:

void ES1Renderer::on_surface_created() {
    // Create default framebuffer object. The backing will be allocated for the current layer in -resizeFromLayer
    glGenFramebuffersOES(1, &defaultFramebuffer);
    glBindFramebufferOES(GL_FRAMEBUFFER_OES, defaultFramebuffer);

    // Create color renderbuffer object.
    glGenRenderbuffersOES(1, &colorRenderbuffer); 
    glBindRenderbufferOES(GL_RENDERBUFFER_OES, colorRenderbuffer);
    glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_COLOR_ATTACHMENT0_OES, GL_RENDERBUFFER_OES, colorRenderbuffer);

    // create depth renderbuffer object.
    glGenRenderbuffersOES(1, &depthRenderbuffer);
    glBindRenderbufferOES(GL_RENDERBUFFER_OES, depthRenderbuffer);
    glFramebufferRenderbufferOES(GL_FRAMEBUFFER_OES, GL_DEPTH_ATTACHMENT_OES, GL_RENDERBUFFER_OES, depthRenderbuffer);
}
Run Code Online (Sandbox Code Playgroud)

但是,似乎这没有得到适当的上下文,我认为这是在初始化GLSurfaceView和渲染器时创建的(java端).

我不是NDK和OpenGLES的专家,但我必须移植一个使用OpenGL ES 1.1的iOS应用程序,我的目标是尽可能多地重用代码.由于应用程序还在利用特定于平台的UI组件(按钮,列表等),同时绘制GL图形,我认为这将是最好的方法.但是,我现在正在考虑使用本机活动,但我不确定与其他java组件的关系是什么.

c++ opengl-es android-ndk glsurfaceview native-activity

4
推荐指数
1
解决办法
1085
查看次数