gpt4 book ai didi

android - GLSurfaceView.Renderer 可以在 onDrawFrame() 中多次交换缓冲区吗?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:55:25 26 4
gpt4 key购买 nike

在我的 openGL 游戏中,我通常使用 onDrawFrame() 中的 GLSurfaceView.Renderer 类绘制我的场景。但是,当我显示加载屏幕时,我想在加载每项数据后强制屏幕绘制,以便显示加载栏。

是否可以通过某种方式在绘制调用期间强制进行缓冲区交换?我唯一的选择是在多个帧中错开我的加载,这意味着大量返工..

我想我想调用的是 eglSwapBuffers(),但我找不到从 GLSurfaceView 或 GLSurfaceView.Renderer 访问 egl 上下文的方法。

感谢您的宝贵时间。

最佳答案

您也可以将此方法添加到您的 GLSurfaceView.Renderer 类中:

import javax.microedition.khronos.egl.EGL10;
import javax.microedition.khronos.egl.EGLDisplay;
import javax.microedition.khronos.egl.EGLSurface;

public void swapBuffers()
{
EGL10 curEgl = (EGL10)EGLContext.getEGL();

EGLDisplay curDisplay = curEgl.eglGetCurrentDisplay();
if (curDisplay == EGL10.EGL_NO_DISPLAY) { Log.e("myApp","No default display"); return; }

EGLSurface curSurface = curEgl.eglGetCurrentSurface(EGL10.EGL_DRAW);
if (curSurface == EGL10.EGL_NO_SURFACE) { Log.e("myApp","No current surface"); return; }

curEgl.eglSwapBuffers(curDisplay, curSurface);
}

与 OpenUserX03 的答案非常相似,只是在 Java 中。

关于android - GLSurfaceView.Renderer 可以在 onDrawFrame() 中多次交换缓冲区吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6456904/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com